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