File 0012-kernel5.8.patch of Package x11-video-nvidiaG02

diff -ruN NVIDIA-Linux-x86_64-304.137p1/kernel/Makefile.kbuild NVIDIA-Linux-x86_64-304.137p2/kernel/Makefile.kbuild
--- NVIDIA-Linux-x86_64-304.137p1/Makefile.kbuild	2022-01-10 19:57:07.375477089 -0300
+++ NVIDIA-Linux-x86_64-304.137p2/Makefile.kbuild	2022-01-10 20:03:04.463853427 -0300
@@ -261,6 +261,7 @@
 
 module: build-sanity-checks
 	@echo "NVIDIA: calling KBUILD..."; \
+	touch .nv-kernel.o.cmd; \
 	 $(MAKE) "CC=$(CC)" $(KBUILD_PARAMS) modules; \
 	echo "NVIDIA: left KBUILD."; \
 	if ! [ -f $(MODULE_OBJECT) ]; then \
diff -ruN NVIDIA-Linux-x86_64-304.137p1/kernel/nv-drm.c NVIDIA-Linux-x86_64-304.137p2/kernel/nv-drm.c
--- NVIDIA-Linux-x86_64-304.137p1/nv-drm.c	2022-01-10 19:57:07.375477089 -0300
+++ NVIDIA-Linux-x86_64-304.137p2/nv-drm.c	2022-01-10 20:00:59.509670334 -0300
@@ -26,7 +26,6 @@
 #include <drm/drm_crtc.h>
 #include <drm/drm_drv.h>
 #include <drm/drm_prime.h>
-#include <drm/drm_pci.h>
 #include <drm/drm_ioctl.h>
 #include <drm/drm_sysfs.h>
 #include <drm/drm_vblank.h>
diff -ruN NVIDIA-Linux-x86_64-304.137p1/kernel/nv-mlock.c NVIDIA-Linux-x86_64-304.137p2/kernel/nv-mlock.c
--- NVIDIA-Linux-x86_64-304.137p1/nv-mlock.c	2017-09-14 17:51:09.000000000 -0300
+++ NVIDIA-Linux-x86_64-304.137p2/nv-mlock.c	2022-01-10 20:02:17.517551323 -0300
@@ -47,12 +47,19 @@
                 "NVRM: failed to allocate page table!\n");
         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 -ruN NVIDIA-Linux-x86_64-304.137p1/kernel/nv-pat.c NVIDIA-Linux-x86_64-304.137p2/kernel/nv-pat.c
--- NVIDIA-Linux-x86_64-304.137p1/nv-pat.c	2017-09-14 17:51:09.000000000 -0300
+++ NVIDIA-Linux-x86_64-304.137p2/nv-pat.c	2022-01-10 20:04:03.850642030 -0300
@@ -38,14 +38,12 @@
     wbinvd();
     *cr4 = NV_READ_CR4();
     if (*cr4 & 0x80) NV_WRITE_CR4(*cr4 & ~0x80);
-    __flush_tlb();
 }
 
 static inline void nv_enable_caches(unsigned long cr4)
 {
     unsigned long cr0 = read_cr0();
     wbinvd();
-    __flush_tlb();
     write_cr0((cr0 & 0x9fffffff));
     if (cr4 & 0x80) NV_WRITE_CR4(cr4);
 }
openSUSE Build Service is sponsored by