mirror of
https://github.com/archlinux-jerry/nvidia-340xx
synced 2024-11-24 00:20:40 +08:00
61 lines
2.4 KiB
Diff
61 lines
2.4 KiB
Diff
|
--- a/kernel/nv-linux.h 2023-08-30 21:22:59.876552334 +0000
|
||
|
+++ b/kernel/nv-linux.h 2023-08-30 21:22:59.876590493 +0000
|
||
|
@@ -2158,7 +2158,27 @@
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
-#if defined(NV_GET_USER_PAGES_HAS_TASK_STRUCT)
|
||
|
+// Rel. commit. "mm/gup: remove unused vmas parameter from get_user_pages()" (Lorenzo Stoakes, 14 May 2023)
|
||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0)
|
||
|
+#include <linux/mm.h>
|
||
|
+
|
||
|
+static inline long NV_GET_USER_PAGES(unsigned long start,
|
||
|
+ unsigned long nr_pages,
|
||
|
+ int write,
|
||
|
+ int force,
|
||
|
+ struct page **pages,
|
||
|
+ struct vm_area_struct **vmas)
|
||
|
+{
|
||
|
+ unsigned int flags = 0;
|
||
|
+
|
||
|
+ if (write)
|
||
|
+ flags |= FOLL_WRITE;
|
||
|
+ if (force)
|
||
|
+ flags |= FOLL_FORCE;
|
||
|
+
|
||
|
+ return get_user_pages(start, nr_pages, flags, pages);
|
||
|
+}
|
||
|
+#elif defined(NV_GET_USER_PAGES_HAS_TASK_STRUCT)
|
||
|
#if defined(NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS)
|
||
|
#define NV_GET_USER_PAGES(start, nr_pages, write, force, pages, vmas) \
|
||
|
get_user_pages(current, current->mm, start, nr_pages, write, force, pages, vmas)
|
||
|
@@ -2231,7 +2251,27 @@
|
||
|
* 2016 Dec 14:5b56d49fc31dbb0487e14ead790fc81ca9fb2c99
|
||
|
*/
|
||
|
|
||
|
-#if defined(NV_GET_USER_PAGES_REMOTE_PRESENT)
|
||
|
+// Rel. commit. "mm/gup: remove unused vmas parameter from get_user_pages_remote()" (Lorenzo Stoakes, 14 May 2023)
|
||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0)
|
||
|
+static inline long NV_GET_USER_PAGES_REMOTE(struct task_struct *tsk,
|
||
|
+ struct mm_struct *mm,
|
||
|
+ unsigned long start,
|
||
|
+ unsigned long nr_pages,
|
||
|
+ int write,
|
||
|
+ int force,
|
||
|
+ struct page **pages,
|
||
|
+ struct vm_area_struct **vmas)
|
||
|
+{
|
||
|
+ unsigned int flags = 0;
|
||
|
+
|
||
|
+ if (write)
|
||
|
+ flags |= FOLL_WRITE;
|
||
|
+ if (force)
|
||
|
+ flags |= FOLL_FORCE;
|
||
|
+
|
||
|
+ return get_user_pages_remote(mm, start, nr_pages, flags, pages, NULL);
|
||
|
+}
|
||
|
+#elif defined(NV_GET_USER_PAGES_REMOTE_PRESENT)
|
||
|
#if defined (NV_GET_USER_PAGES_REMOTE_HAS_WRITE_AND_FORCE_ARGS)
|
||
|
#define NV_GET_USER_PAGES_REMOTE get_user_pages_remote
|
||
|
#else
|