Created
September 18, 2023 20:18
-
-
Save vejeta/c1bea748f2645d040f69080dfce7b184 to your computer and use it in GitHub Desktop.
Tentative fix for nvidia-legacy-340xx-kernel-dkms 340.108-19 module for Linux 6.5.x
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From: Juan Manuel Méndez Rey <vejeta@gmail.com> | |
Date: Mon, 18 Sep 2023 22:18:30 +0000 | |
Subject: [PATCH] Tentative fix for NVIDIA 340.108 DKMS source for Linux 6.5 | |
--- nvidia-legacy-340xx-340.108/nv-linux.h 2019-12-11 23:04:24.000000000 +0100 | |
+++ b/nv-linux.h 2023-09-18 21:41:04.512972716 +0200 | |
@@ -2093,7 +2093,24 @@ static inline NvU64 nv_node_end_pfn(int | |
* | |
*/ | |
-#if defined(NV_GET_USER_PAGES_HAS_TASK_STRUCT) | |
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) | |
+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) | |
@@ -2166,7 +2183,18 @@ static inline NvU64 nv_node_end_pfn(int | |
* 2016 Dec 14:5b56d49fc31dbb0487e14ead790fc81ca9fb2c99 | |
*/ | |
-#if defined(NV_GET_USER_PAGES_REMOTE_PRESENT) | |
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) | |
+ static inline long NV_GET_USER_PAGES_REMOTE(struct mm_struct *mm, | |
+ unsigned long start, | |
+ unsigned long nr_pages, | |
+ unsigned int gup_flags, | |
+ struct page **pages, | |
+ struct vm_area_struct **vmas, | |
+ int *locked) | |
+ { | |
+ return get_user_pages_remote(mm, start, nr_pages, gup_flags, pages, locked); | |
+ } | |
+#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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment