mm-gup-remove-vmas-parameter-from-pin_user_pages.patch removed from -mm tree
The quilt patch titled
Subject: mm/gup: remove vmas parameter from pin_user_pages()
has been removed from the -mm tree. Its filename was
mm-gup-remove-vmas-parameter-from-pin_user_pages.patch
This patch was dropped because it was merged into the mm-stable branch of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: Lorenzo Stoakes <[email protected]>
Subject: mm/gup: remove vmas parameter from pin_user_pages()
Date: Wed, 17 May 2023 20:25:45 +0100
We are now in a position where no caller of pin_user_pages() requires the vmas parameter at all, so eliminate this parameter from the function and all callers.
This clears the way to removing the vmas parameter from GUP altogether.
---
arch/powerpc/mm/book3s64/iommu_api.c | 2 +- drivers/infiniband/hw/qib/qib_user_pages.c | 2 +- drivers/infiniband/hw/usnic/usnic_uiom.c | 2 +- drivers/infiniband/sw/siw/siw_mem.c | 2 +- drivers/media/v4l2-core/videobuf-dma-sg.c | 2 +- drivers/vdpa/vdpa_user/vduse_dev.c | 2 +- drivers/vhost/vdpa.c | 2 +- include/linux/mm.h | 3 +-- io_uring/rsrc.c | 2 +- mm/gup.c | 9 +++------ mm/gup_test.c | 9 ++++----- net/xdp/xdp_umem.c | 2 +- 12 files changed, 17 insertions(+), 22 deletions(-)
arch/powerpc/mm/book3s64/iommu_api.c renamed from arch/powerpc/mm/book3s64/iommu_api.c~mm-gup-remove-vmas-parameter-from-pin_user_pages +1 -1
@@ -105,7 +105,7 @@ static long mm_iommu_do_alloc(struct mm_ ret =pin_user_pages (ua + (entry <<PAGE_SHIFT ), n,FOLL_WRITE |FOLL_LONGTERM , - mem->hpages + entry,NULL ); + mem->hpages + entry);if (ret == n) { pinned += n;continue ;
drivers/infiniband/hw/qib/qib_user_pages.c renamed from drivers/infiniband/hw/qib/qib_user_pages.c~mm-gup-remove-vmas-parameter-from-pin_user_pages +1 -1
@@ -111,7 +111,7 @@ int qib_get_user_pages(unsigned long sta ret =pin_user_pages (start_page + got *PAGE_SIZE , num_pages - got,FOLL_LONGTERM |FOLL_WRITE , - p + got,NULL ); + p + got);if (ret <0 ) {mmap_read_unlock (current->mm); goto bail_release;
drivers/infiniband/hw/usnic/usnic_uiom.c renamed from drivers/infiniband/hw/usnic/usnic_uiom.c~mm-gup-remove-vmas-parameter-from-pin_user_pages +1 -1
@@ -140,7 +140,7 @@ static int usnic_uiom_get_pages(unsigned ret =pin_user_pages (cur_base, min_t(unsigned long, npages,PAGE_SIZE /sizeof (struct page *)), - gup_flags, page_list,NULL ); + gup_flags, page_list);if (ret <0 ) goto out;
drivers/infiniband/sw/siw/siw_mem.c renamed from drivers/infiniband/sw/siw/siw_mem.c~mm-gup-remove-vmas-parameter-from-pin_user_pages +1 -1
@@ -422,7 +422,7 @@ struct siw_umem *siw_umem_get(u64 start, umem->page_chunk[i].plist = plist;while (nents) { rv =pin_user_pages (first_page_va, nents, foll_flags, - plist,NULL ); + plist);if (rv <0 ) goto out_sem_up;
drivers/media/v4l2-core/videobuf-dma-sg.c renamed from drivers/media/v4l2-core/videobuf-dma-sg.c~mm-gup-remove-vmas-parameter-from-pin_user_pages +1 -1
@@ -180,7 +180,7 @@ static int videobuf_dma_init_user_locked data, size, dma->nr_pages); err =pin_user_pages (data &PAGE_MASK , dma->nr_pages, gup_flags, - dma->pages,NULL ); + dma->pages);if (err != dma->nr_pages) { dma->nr_pages = (err >=0 ) ? err :0 ;
drivers/vdpa/vdpa_user/vduse_dev.c renamed from drivers/vdpa/vdpa_user/vduse_dev.c~mm-gup-remove-vmas-parameter-from-pin_user_pages +1 -1
@@ -1052,7 +1052,7 @@ static int vduse_dev_reg_umem(struct vdu goto out; pinned =pin_user_pages (uaddr, npages,FOLL_LONGTERM |FOLL_WRITE , - page_list,NULL ); + page_list);if (pinned != npages) { ret = pinned <0 ? pinned : -ENOMEM ; goto out;
drivers/vhost/vdpa.c renamed from drivers/vhost/vdpa.c~mm-gup-remove-vmas-parameter-from-pin_user_pages +1 -1
@@ -983,7 +983,7 @@ static int vhost_vdpa_pa_map(struct vhoswhile (npages) { sz2pin = min_t(unsigned long, npages, list_size); pinned =pin_user_pages (cur_base, sz2pin, - gup_flags, page_list,NULL ); + gup_flags, page_list);if (sz2pin != pinned) {if (pinned <0 ) { ret = pinned;
include/linux/mm.h renamed from include/linux/mm.h~mm-gup-remove-vmas-parameter-from-pin_user_pages +1 -2
@@ -2399,8 +2399,7 @@ static inline struct page *get_user_pagelong get_user_pages (unsigned long start,unsigned long nr_pages,unsigned int gup_flags,struct page **pages);long pin_user_pages (unsigned long start,unsigned long nr_pages, -unsigned int gup_flags,struct page **pages, -struct vm_area_struct **vmas); +unsigned int gup_flags,struct page **pages);long get_user_pages_unlocked (unsigned long start,unsigned long nr_pages,struct page **pages,unsigned int gup_flags); long pin_user_pages_unlocked(unsigned long start, unsigned long nr_pages,
io_uring/rsrc.c renamed from io_uring/rsrc.c~mm-gup-remove-vmas-parameter-from-pin_user_pages +1 -1
@@ -1044,7 +1044,7 @@ struct page **io_pin_pages(unsigned long ret =0 ;mmap_read_lock (current->mm); pret =pin_user_pages (ubuf, nr_pages,FOLL_WRITE |FOLL_LONGTERM , - pages,NULL ); + pages);if (pret == nr_pages) *npages = nr_pages;else
mm/gup.c renamed from mm/gup.c~mm-gup-remove-vmas-parameter-from-pin_user_pages +3 -6
@@ -3131,8 +3131,6 @@ EXPORT_SYMBOL(pin_user_pages_remote);* @gup_flags: flags modifying lookup behaviour * @pages: array that receives pointers to the pages pinned. * Should be at least nr_pages long. -* @vmas: array of pointers to vmas corresponding to each page. -* Or NULL if the caller does not require them. * * Nearly the same as get_user_pages(), except that FOLL_TOUCH is not set, and * FOLL_PIN is set.
@@ -3141,15 +3139,14 @@ EXPORT_SYMBOL(pin_user_pages_remote);* see Documentation/core-api/pin_user_pages.rst for details. */ long pin_user_pages (unsigned long start,unsigned long nr_pages, -unsigned int gup_flags,struct page **pages, -struct vm_area_struct **vmas) +unsigned int gup_flags,struct page **pages) {int locked =1 ; -if (!is_valid_gup_args (pages, vmas,NULL , &gup_flags,FOLL_PIN )) +if (!is_valid_gup_args (pages,NULL ,NULL , &gup_flags,FOLL_PIN ))return 0 ;return __gup_longterm_locked (current->mm, start, nr_pages, - pages, vmas, &locked, gup_flags); + pages,NULL , &locked, gup_flags); }EXPORT_SYMBOL (pin_user_pages);
mm/gup_test.c renamed from mm/gup_test.c~mm-gup-remove-vmas-parameter-from-pin_user_pages +4 -5
@@ -146,18 +146,17 @@ static int __gup_test_ioctl(unsigned int pages + i);break ;case PIN_BASIC_TEST : - nr =pin_user_pages (addr, nr, gup->gup_flags, pages + i, -NULL ); + nr =pin_user_pages (addr, nr, gup->gup_flags, pages + i);break ;case PIN_LONGTERM_BENCHMARK : nr =pin_user_pages (addr, nr, gup->gup_flags |FOLL_LONGTERM , - pages + i,NULL ); + pages + i);break ;case DUMP_USER_PAGES_TEST :if (gup->test_flags &GUP_TEST_FLAG_DUMP_PAGES_USE_PIN ) nr =pin_user_pages (addr, nr, gup->gup_flags, - pages + i,NULL ); + pages + i);else nr =get_user_pages (addr, nr, gup->gup_flags, pages + i);
@@ -270,7 +269,7 @@ static inline int pin_longterm_test_star gup_flags, pages); else cur_pages =pin_user_pages (addr, remaining_pages, - gup_flags, pages,NULL ); + gup_flags, pages);if (cur_pages <0 ) {pin_longterm_test_stop (); ret = cur_pages;
net/xdp/xdp_umem.c renamed from net/xdp/xdp_umem.c~mm-gup-remove-vmas-parameter-from-pin_user_pages +1 -1
@@ -103,7 +103,7 @@ static int xdp_umem_pin_pages(struct xdpmmap_read_lock (current->mm); npgs =pin_user_pages (address, umem->npgs, - gup_flags |FOLL_LONGTERM , &umem->pgs[0 ],NULL ); + gup_flags |FOLL_LONGTERM , &umem->pgs[0 ]);mmap_read_unlock (current->mm);if (npgs != umem->npgs) {
_
Patches currently in -mm which might be from [email protected] are
mm-vmalloc-do-not-output-a-spurious-warning-when-huge-vmalloc-fails.patch