diff options
Diffstat (limited to 'system/nvidia-legacy340-kernel/patches/0002-kernel-5.8.patch')
-rw-r--r-- | system/nvidia-legacy340-kernel/patches/0002-kernel-5.8.patch | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/system/nvidia-legacy340-kernel/patches/0002-kernel-5.8.patch b/system/nvidia-legacy340-kernel/patches/0002-kernel-5.8.patch new file mode 100644 index 0000000000..1d8b1a40e1 --- /dev/null +++ b/system/nvidia-legacy340-kernel/patches/0002-kernel-5.8.patch @@ -0,0 +1,92 @@ +From 2cc3342b4b3c96bcc4062513011d35c079b009a2 Mon Sep 17 00:00:00 2001 +From: graysky <graysky@archlinux.us> +Date: Thu, 22 Oct 2020 06:59:59 -0400 +Subject: [PATCH 2/3] kernel-5.8 + +credit: https://launchpad.net/~kelebek333/+archive/ubuntu/nvidia-legacy/+packages +extracted from: https://launchpadlibrarian.net/492468557/nvidia-graphics-drivers-340_340.108-1lmtrfocal3_340.108-2lmtrfocal.diff.gz +--- + kernel/nv-linux.h | 8 ++++++++ + kernel/nvidia-modules-common.mk | 1 + + kernel/os-mlock.c | 8 ++++++++ + kernel/uvm/nvidia_uvm_lite_api.c | 4 ++++ + 4 files changed, 21 insertions(+) + +diff --git a/kernel/nv-linux.h b/kernel/nv-linux.h +index 83e6433..d055552 100644 +--- a/kernel/nv-linux.h ++++ b/kernel/nv-linux.h +@@ -669,11 +669,19 @@ extern nv_spinlock_t km_lock; + # define KM_FREE_RECORD(a,b,c) + #endif + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0) ++#define NV_VMALLOC(ptr, size) \ ++ { \ ++ (ptr) = __vmalloc(size, GFP_KERNEL); \ ++ VM_ALLOC_RECORD(ptr, size, "vm_vmalloc"); \ ++ } ++#else + #define NV_VMALLOC(ptr, size) \ + { \ + (ptr) = __vmalloc(size, GFP_KERNEL, PAGE_KERNEL); \ + VM_ALLOC_RECORD(ptr, size, "vm_vmalloc"); \ + } ++#endif + + #define NV_VFREE(ptr, size) \ + { \ +diff --git a/kernel/nvidia-modules-common.mk b/kernel/nvidia-modules-common.mk +index b94591b..0e4c228 100644 +--- a/kernel/nvidia-modules-common.mk ++++ b/kernel/nvidia-modules-common.mk +@@ -222,6 +222,7 @@ build-sanity-checks: + define BUILD_MODULE_RULE + $(1): build-sanity-checks $(3) + @echo "NVIDIA: calling KBUILD..."; \ ++ touch .nv-kernel.o.cmd; \ + $$(MAKE) "CC=$$(CC)" NV_MODULE_SUFFIX=$$(strip $(2)) $$(KBUILD_PARAMS) modules; \ + echo "NVIDIA: left KBUILD."; \ + if ! [ -f $(1) ]; then \ +diff --git a/kernel/os-mlock.c b/kernel/os-mlock.c +index 8a1fa2f..fc50543 100644 +--- a/kernel/os-mlock.c ++++ b/kernel/os-mlock.c +@@ -44,11 +44,19 @@ RM_STATUS NV_API_CALL os_lock_user_pages( + return rmStatus; + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0) ++ down_read(&mm->mmap_lock); ++ ret = NV_GET_USER_PAGES((unsigned long)address, ++ page_count, write, force, user_pages, NULL); ++ up_read(&mm->mmap_lock); ++ pinned = ret; ++#else + down_read(&mm->mmap_sem); + ret = NV_GET_USER_PAGES((unsigned long)address, + page_count, write, force, user_pages, NULL); + up_read(&mm->mmap_sem); + pinned = ret; ++#endif + + if (ret < 0) + { +diff --git a/kernel/uvm/nvidia_uvm_lite_api.c b/kernel/uvm/nvidia_uvm_lite_api.c +index 8448eb6..97a4818 100644 +--- a/kernel/uvm/nvidia_uvm_lite_api.c ++++ b/kernel/uvm/nvidia_uvm_lite_api.c +@@ -30,6 +30,10 @@ + #include "uvm_gpu_ops_tests.h" + #endif + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0) ++#define mmap_sem mmap_lock ++#endif ++ + // + // nvidia_uvm_lite_api.c + // +-- +2.29.0 + |