Skip to content

Instantly share code, notes, and snippets.

@vejeta
Created September 18, 2023 20:18
Show Gist options
  • Save vejeta/c1bea748f2645d040f69080dfce7b184 to your computer and use it in GitHub Desktop.
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
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