commit dd1456160af8d2456e10f098ef2c80fdbee96c68
Author: Leigh Scott <leigh123linux(a)gmail.com>
Date: Thu Aug 27 14:26:32 2020 +0100
Patch for kernel 5.8
kernel-5.8.patch | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++
nvidia-390xx-kmod.spec | 9 ++++-
2 files changed, 104 insertions(+), 1 deletion(-)
---
diff --git a/kernel-5.8.patch b/kernel-5.8.patch
new file mode 100644
index 0000000..1d32d56
--- /dev/null
+++ b/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
+@@ -532,7 +532,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 <linux/vmalloc.h>
++
++ 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 <linux/mm_types.h>
++
++ 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/nvidia-390xx-kmod.spec b/nvidia-390xx-kmod.spec
index fa5675e..3d67dc3 100644
--- a/nvidia-390xx-kmod.spec
+++ b/nvidia-390xx-kmod.spec
@@ -12,7 +12,7 @@ Name: nvidia-390xx-kmod
Epoch: 3
Version: 390.138
# Taken over by kmodtool
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: NVIDIA 390xx display driver kernel module
Group: System Environment/Kernel
License: Redistributable, no modification permitted
@@ -21,6 +21,7 @@ URL:
http://www.nvidia.com/
Source11: nvidia-390xx-kmodtool-excludekernel-filterfile
Patch0: nv-linux-arm.patch
Patch1: nv-linux-arm2.patch
+Patch2: kernel-5.8.patch
# needed for plague to make sure it builds for i586 and i686
ExclusiveArch: i686 x86_64 armv7hl
@@ -46,6 +47,7 @@ tar --use-compress-program xz -xf
%{_datadir}/%{name}-%{version}/%{name}-%{versi
# patch loop
%patch0 -p1
%patch1 -p1
+%patch2 -p1
for kernel_version in %{?kernel_versions} ; do
@@ -58,6 +60,7 @@ for kernel_version in %{?kernel_versions}; do
make V=1 %{?_smp_mflags} \
KERNEL_UNAME="${kernel_version%%___*}"
SYSSRC="${kernel_version##*___}" \
IGNORE_CC_MISMATCH=1 IGNORE_XEN_PRESENCE=1 IGNORE_PREEMPT_RT_PRESENCE=1 \
+ NV_EXCLUDE_KERNEL_MODULES=nvidia-uvm \
module
popd
done
@@ -74,6 +77,10 @@ done
%changelog
+* Thu Aug 27 2020 Leigh Scott <leigh123linux(a)gmail.com> - 3:390.138-3
+- Patch for kernel 5.8
+- Exclude nvidia-uvm due to GPL-only symbol 'radix_tree_preloads'
+
* Wed Aug 19 2020 RPM Fusion Release Engineering <leigh123linux(a)gmail.com> -
3:390.138-2
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild