drivers: nv-p2p: Drop get_user_pages_locked

The nv-p2p driver does not compile against pre-v5.15 kernels and the
following error is seen ...

 drivers/nv-p2p/nvidia-p2p.c:153:24: error: passing argument 1 of
 'mmap_read_lock' from incompatible pointer type
 [-Werror=incompatible-pointer-types]
  153 |         mmap_read_lock(&current->mm);
      |                        ^~~~~~~~~~~~
      |                        |
      |                        struct mm_struct **

The version of the function get_user_pages_unlocked() used in the nv-p2p
driver has been support since v4.6 and so drop usage of
get_user_pages_locked() completely.

Bug 4142533

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Change-Id: I957197825ddee6b705626b345aaff4647de08533
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2983961
Reviewed-by: Sumit Gupta <sumitg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
Jon Hunter
2023-09-22 15:45:56 +01:00
committed by mobile promotions
parent 2c1450fb2f
commit 040c0ad65f

View File

@@ -129,7 +129,6 @@ int nvidia_p2p_get_pages(u64 vaddr, u64 size,
{ {
int ret = 0; int ret = 0;
int user_pages = 0; int user_pages = 0;
int locked = 0;
int nr_pages = safe_cast_u64_to_s32(size >> PAGE_SHIFT); int nr_pages = safe_cast_u64_to_s32(size >> PAGE_SHIFT);
struct page **pages; struct page **pages;
@@ -148,17 +147,8 @@ int nvidia_p2p_get_pages(u64 vaddr, u64 size,
goto free_page_table; goto free_page_table;
} }
locked = 1;
#if LINUX_VERSION_CODE <= KERNEL_VERSION(5, 15, 0)
mmap_read_lock(&current->mm);
user_pages = safe_cast_s64_to_s32(get_user_pages_locked(vaddr & PAGE_MASK, nr_pages,
FOLL_WRITE | FOLL_FORCE, pages, &locked));
if (locked)
mmap_read_unlock(&current->mm);
#else
user_pages = safe_cast_s64_to_s32(get_user_pages_unlocked(vaddr & PAGE_MASK, nr_pages, user_pages = safe_cast_s64_to_s32(get_user_pages_unlocked(vaddr & PAGE_MASK, nr_pages,
pages, FOLL_WRITE | FOLL_FORCE)); pages, FOLL_WRITE | FOLL_FORCE));
#endif
if (user_pages != nr_pages) { if (user_pages != nr_pages) {
ret = user_pages < 0 ? user_pages : -ENOMEM; ret = user_pages < 0 ? user_pages : -ENOMEM;
goto free_pages; goto free_pages;