diff --git a/kernel/drivers/module-nvidia340/actions.py b/kernel/drivers/module-nvidia340/actions.py index 0be680ba80..cf82dba84c 100644 --- a/kernel/drivers/module-nvidia340/actions.py +++ b/kernel/drivers/module-nvidia340/actions.py @@ -33,6 +33,7 @@ def setup(): #shelltools.system("patch -p1 < kernel-5.6.patch") #shelltools.system("patch -p1 < unfuck-340.108-build-fix.patch") shelltools.system("patch -p1 < kernel-5.7.patch") + shelltools.system("patch -p1 < kernel-5.8.patch") # Our libc is TLS enabled so use TLS library diff --git a/kernel/drivers/module-nvidia340/files/NVIDIA-Linux-x86_64-340.108-kernel-5.8.patch b/kernel/drivers/module-nvidia340/files/NVIDIA-Linux-x86_64-340.108-kernel-5.8.patch new file mode 100644 index 0000000000..8df44adf9d --- /dev/null +++ b/kernel/drivers/module-nvidia340/files/NVIDIA-Linux-x86_64-340.108-kernel-5.8.patch @@ -0,0 +1,67 @@ +--- a/kernel/nvidia-modules-common.mk ++++ b/kernel/nvidia-modules-common.mk +@@ -222,6 +222,7 @@ + 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 \ +--- a/kernel/nv-linux.h 2020-08-08 03:48:46.894783237 +0300 ++++ b/kernel/nv-linux.h 2020-08-08 15:43:05.252047541 +0300 +@@ -669,11 +669,19 @@ + # 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) \ + { \ +--- a/kernel/os-mlock.c 2020-04-16 15:37:41.000000000 +0300 ++++ b/kernel/os-mlock.c 2020-08-08 15:47:44.793311179 +0300 +@@ -44,11 +44,19 @@ + 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) + { +--- a/kernel/uvm/nvidia_uvm_lite_api.c 2020-04-16 15:37:41.000000000 +0300 ++++ b/kernel/uvm/nvidia_uvm_lite_api.c 2020-08-08 15:28:40.110186418 +0300 +@@ -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 + // diff --git a/kernel/drivers/module-nvidia340/pspec.xml b/kernel/drivers/module-nvidia340/pspec.xml index 4dd11df2cb..7389037f9d 100644 --- a/kernel/drivers/module-nvidia340/pspec.xml +++ b/kernel/drivers/module-nvidia340/pspec.xml @@ -17,12 +17,11 @@ unfuck-340.108-build-fix.patch dkms.conf unfuck-340.108-build-fix.patch - NVIDIA-Linux-x86_64-340.108-kernel-5.5.patch - NVIDIA-Linux-x86_64-340.108-kernel-5.6.patch NVIDIA-Linux-x86_64-340.108-kernel-5.7.patch + NVIDIA-Linux-x86_64-340.108-kernel-5.8.patch - kernel-module-headers + kernel-module-headers @@ -31,7 +30,7 @@ driver Kernel module for NVIDIA driver 340.xx releases - kernel + kernel /lib/modules @@ -157,6 +156,13 @@ + + 2020-09-10 + 340.108 + Rebuild. + Mustafa Cinasal + muscnsl@gmail.com + 2020-07-05 340.108 diff --git a/kernel/drivers/module-nvidia390/actions.py b/kernel/drivers/module-nvidia390/actions.py index e1914bdd7c..452fb51b25 100644 --- a/kernel/drivers/module-nvidia390/actions.py +++ b/kernel/drivers/module-nvidia390/actions.py @@ -29,7 +29,7 @@ def setup(): #5.5 patch icin #shelltools.move("tmp/.manifest", ".") #shelltools.system("patch -p1 < kernel-5.5.patch") - #shelltools.system("patch -p1 < kernel-5.6.patch") + shelltools.system("patch -p1 < kernel-5.8.patch") #if get.buildTYPE() != 'emul32': #shelltools.system("patch -p1 < linux-5.1.patch") diff --git a/kernel/drivers/module-nvidia390/files/NVIDIA-Linux-390.138-x86_64-kernel-5.8.patch b/kernel/drivers/module-nvidia390/files/NVIDIA-Linux-390.138-x86_64-kernel-5.8.patch new file mode 100644 index 0000000000..e0d2946deb --- /dev/null +++ b/kernel/drivers/module-nvidia390/files/NVIDIA-Linux-390.138-x86_64-kernel-5.8.patch @@ -0,0 +1,96 @@ +diff --git a/kernel/common/inc/nv-linux.h b/kernel/common/inc/nv-linux.h +index ac5bb95..3d2f0b7 100644 +--- a/kernel/common/inc/nv-linux.h ++++ b/kernel/common/inc/nv-linux.h +@@ -531,7 +531,11 @@ extern int nv_pat_mode; + + static inline void *nv_vmalloc(unsigned long size) + { ++#if defined(NV_VMALLOC_HAS_PGPROT_T_ARG) + void *ptr = __vmalloc(size, GFP_KERNEL, PAGE_KERNEL); ++#else ++ void *ptr = __vmalloc(size, GFP_KERNEL); ++#endif + if (ptr) + NV_MEMDBG_ADD(ptr, size); + return ptr; +diff --git a/kernel/common/inc/nv-mm.h b/kernel/common/inc/nv-mm.h +index 1270bf3..d2d7657 100644 +--- a/kernel/common/inc/nv-mm.h ++++ b/kernel/common/inc/nv-mm.h +@@ -29,6 +29,10 @@ + typedef int vm_fault_t; + #endif + ++#if defined(NV_MM_HAS_MMAP_LOCK) ++#define mmap_sem mmap_lock ++#endif ++ + /* get_user_pages + * + * The 8-argument version of get_user_pages was deprecated by commit +diff --git a/kernel/conftest.sh b/kernel/conftest.sh +index 7da7505..7793dd6 100755 +--- a/kernel/conftest.sh ++++ b/kernel/conftest.sh +@@ -4067,6 +4067,44 @@ compile_test() { + compile_check_conftest "$CODE" "NV_KTIME_GET_REAL_TS64_PRESENT" "" "functions" + ;; + ++ vmalloc_has_pgprot_t_arg) ++ # ++ # Determine if __vmalloc has the 'pgprot' argument. ++ # ++ # The third argument to __vmalloc, page protection ++ # 'pgprot_t prot', was removed by commit 88dca4ca5a93 ++ # (mm: remove the pgprot argument to __vmalloc) ++ # in v5.8-rc1 (2020-06-01). ++ CODE=" ++ #include ++ ++ void conftest_vmalloc_has_pgprot_t_arg(void) { ++ pgprot_t prot; ++ (void)__vmalloc(0, 0, prot); ++ }" ++ ++ compile_check_conftest "$CODE" "NV_VMALLOC_HAS_PGPROT_T_ARG" "" "types" ++ ++ ;; ++ ++ mm_has_mmap_lock) ++ # ++ # Determine if the 'mm_struct' structure has a 'mmap_lock' field. ++ # ++ # Kernel commit da1c55f1b272 ("mmap locking API: rename mmap_sem ++ # to mmap_lock") replaced the field 'mmap_sem' by 'mmap_lock' ++ # in v5.8-rc1 (2020-06-08). ++ CODE=" ++ #include ++ ++ int conftest_mm_has_mmap_lock(void) { ++ return offsetof(struct mm_struct, mmap_lock); ++ }" ++ ++ compile_check_conftest "$CODE" "NV_MM_HAS_MMAP_LOCK" "" "types" ++ ++ ;; ++ + pci_dev_has_skip_bus_pm) + # + # Determine if skip_bus_pm flag is present in struct pci_dev. +diff --git a/kernel/nvidia/nvidia.Kbuild b/kernel/nvidia/nvidia.Kbuild +index 63e369f..656db7b 100644 +--- a/kernel/nvidia/nvidia.Kbuild ++++ b/kernel/nvidia/nvidia.Kbuild +@@ -192,7 +192,9 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += iterate_dir + NV_CONFTEST_TYPE_COMPILE_TESTS += kstrtoull + NV_CONFTEST_TYPE_COMPILE_TESTS += backlight_properties_type + NV_CONFTEST_TYPE_COMPILE_TESTS += proc_ops ++NV_CONFTEST_TYPE_COMPILE_TESTS += vmalloc_has_pgprot_t_arg + NV_CONFTEST_TYPE_COMPILE_TESTS += timeval ++NV_CONFTEST_TYPE_COMPILE_TESTS += mm_has_mmap_lock + NV_CONFTEST_TYPE_COMPILE_TESTS += kmem_cache_has_kobj_remove_work + NV_CONFTEST_TYPE_COMPILE_TESTS += sysfs_slab_unlink + NV_CONFTEST_TYPE_COMPILE_TESTS += pci_dev_has_skip_bus_pm +-- +2.25.1 diff --git a/kernel/drivers/module-nvidia390/pspec.xml b/kernel/drivers/module-nvidia390/pspec.xml index a761e7e028..f3eb477643 100644 --- a/kernel/drivers/module-nvidia390/pspec.xml +++ b/kernel/drivers/module-nvidia390/pspec.xml @@ -16,11 +16,11 @@ dkms.conf NVIDIA-Linux-x86_64-390.132-kernel-5.5.patch - NVIDIA-Linux-x86_64-390.132-kernel-5.6.patch + NVIDIA-Linux-390.138-x86_64-kernel-5.8.patch NVIDIA-Linux-x86_64-390.132-kernel-5.6-uvm.patch - kernel-module-headers + kernel-module-headers libX11-devel gtk2-devel gtk3-devel @@ -32,7 +32,7 @@ driver Kernel module for current NVIDIA graphics driver releases - kernel + kernel @@ -196,6 +196,13 @@ + + 2020-09-10 + 390.138 + Rebuild. + Mustafa Cinasal + muscnsl@gmail.com + 2020-08-06 390.138 diff --git a/kernel/drivers/module-nvidia430/pspec.xml b/kernel/drivers/module-nvidia430/pspec.xml index b0d891aa18..60d478e572 100644 --- a/kernel/drivers/module-nvidia430/pspec.xml +++ b/kernel/drivers/module-nvidia430/pspec.xml @@ -13,7 +13,7 @@ NVIDIA graphics drivers provide optimized 2D/3D performance. http://http.download.nvidia.com/XFree86/Linux-x86_64/430.64/NVIDIA-Linux-x86_64-430.64.run - kernel-module-headers + kernel-module-headers libX11-devel gtk2-devel gtk3-devel @@ -31,7 +31,7 @@ driver Kernel module for current NVIDIA graphics driver releases - kernel + kernel @@ -224,6 +224,13 @@ + + 2020-09-10 + 430.64 + Rebuild. + Mustafa Cinasal Bojara + muscnsl@gmail.com + 2020-07-05 430.64