]> git.pld-linux.org Git - packages/xorg-driver-video-nvidia-legacy-390xx.git/blobdiff - kernel-6.5-handle-get_user_pages-vmas-argument-remova.patch
- fix build on ix86
[packages/xorg-driver-video-nvidia-legacy-390xx.git] / kernel-6.5-handle-get_user_pages-vmas-argument-remova.patch
index 9e997d8cdbf5869c75a2ef8421ead5c46ccea429..4da3e0bd9ea4992bb94a196a98526537a6bd2f1e 100644 (file)
@@ -153,48 +153,6 @@ index be405f29..dd4a2a6d 100644
      nv_mmap_read_unlock(mm);
  
      if (pages_pinned < 0 || (unsigned)pages_pinned < pages_count) {
-diff --git a/kernel/nvidia-uvm/uvm8_tools.c b/kernel/nvidia-uvm/uvm8_tools.c
-index 1dc7c97d..ea521945 100644
---- a/kernel/nvidia-uvm/uvm8_tools.c
-+++ b/kernel/nvidia-uvm/uvm8_tools.c
-@@ -251,13 +251,37 @@ static NV_STATUS map_user_pages(NvU64 user_va, NvU64 size, void **addr, struct p
-     }
-     nv_mmap_read_lock(current->mm);
-+#if defined(NV_GET_USER_PAGES_DROPPED_VMA)
-+    ret = NV_GET_USER_PAGES(user_va, num_pages, 1, 0, *pages);
-+#else
-     ret = NV_GET_USER_PAGES(user_va, num_pages, 1, 0, *pages, vmas);
-+#endif
-     nv_mmap_read_unlock(current->mm);
-     if (ret != num_pages) {
-         status = NV_ERR_INVALID_ARGUMENT;
-         goto fail;
-     }
-+#if defined(NV_GET_USER_PAGES_DROPPED_VMA)
-+    struct vm_area_struct *vma;
-+    unsigned long start;
-+
-+    nv_mmap_read_lock(current->mm);
-+    start = user_va;
-+    for (i = 0; i < num_pages; i++) {
-+        vma = find_vma(current->mm, start);
-+        if (!vma) {
-+          nv_mmap_read_unlock(current->mm);
-+          status = NV_ERR_INVALID_ARGUMENT;
-+          goto fail;
-+      }
-+
-+        vmas[i] = vma;
-+        start = (start + PAGE_SIZE) & PAGE_MASK;
-+    }
-+    nv_mmap_read_unlock(current->mm);
-+#endif
-+
-     for (i = 0; i < num_pages; i++) {
-         if (page_count((*pages)[i]) > MAX_PAGE_COUNT || uvm_file_is_nvidia_uvm(vmas[i]->vm_file)) {
-             status = NV_ERR_INVALID_ARGUMENT;
 diff --git a/kernel/nvidia/os-mlock.c b/kernel/nvidia/os-mlock.c
 index f88daed4..ad5cb9a1 100644
 --- a/kernel/nvidia/os-mlock.c
This page took 0.140187 seconds and 4 git commands to generate.