From e4c7fc22aba8c6f6bb1f0292d8df8b02b6cc48e7 Mon Sep 17 00:00:00 2001 From: MrLimb Date: Tue, 1 Sep 2020 17:22:57 +0000 Subject: [PATCH 1/3] nvidia390: adding a patch for linux5.8 --- srcpkgs/nvidia390/files/kernel-5.8.patch | 96 ++++++++++++++++++++++++ srcpkgs/nvidia390/template | 5 ++ 2 files changed, 101 insertions(+) create mode 100644 srcpkgs/nvidia390/files/kernel-5.8.patch diff --git a/srcpkgs/nvidia390/files/kernel-5.8.patch b/srcpkgs/nvidia390/files/kernel-5.8.patch new file mode 100644 index 00000000000..48649d7e6aa --- /dev/null +++ b/srcpkgs/nvidia390/files/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/srcpkgs/nvidia390/template b/srcpkgs/nvidia390/template index 8de5524fca7..c2b18296bac 100644 --- a/srcpkgs/nvidia390/template +++ b/srcpkgs/nvidia390/template @@ -38,6 +38,11 @@ do_extract() { rm -f ${_pkg}.run } +do_patch() { + cd ${_pkg} + patch -p1 < ${FILESDIR}/kernel-5.8.patch +} + pre_install() { cd ${_pkg} cp nvidia_icd.json.template nvidia_icd.json From a0d88896aa07016257de453a4a1aadf45a9b8fa2 Mon Sep 17 00:00:00 2001 From: MrLimb Date: Tue, 1 Sep 2020 19:00:48 +0000 Subject: [PATCH 2/3] nvidia390: adding a patch for linux5.8 --- srcpkgs/nvidia390/{files => patches}/kernel-5.8.patch | 0 srcpkgs/nvidia390/template | 5 ----- 2 files changed, 5 deletions(-) rename srcpkgs/nvidia390/{files => patches}/kernel-5.8.patch (100%) diff --git a/srcpkgs/nvidia390/files/kernel-5.8.patch b/srcpkgs/nvidia390/patches/kernel-5.8.patch similarity index 100% rename from srcpkgs/nvidia390/files/kernel-5.8.patch rename to srcpkgs/nvidia390/patches/kernel-5.8.patch diff --git a/srcpkgs/nvidia390/template b/srcpkgs/nvidia390/template index c2b18296bac..8de5524fca7 100644 --- a/srcpkgs/nvidia390/template +++ b/srcpkgs/nvidia390/template @@ -38,11 +38,6 @@ do_extract() { rm -f ${_pkg}.run } -do_patch() { - cd ${_pkg} - patch -p1 < ${FILESDIR}/kernel-5.8.patch -} - pre_install() { cd ${_pkg} cp nvidia_icd.json.template nvidia_icd.json From 19c7d4172e77d1fb55984c7618a9b975440d9833 Mon Sep 17 00:00:00 2001 From: MrLimb <39676462+MrLimb@users.noreply.github.com> Date: Wed, 2 Sep 2020 01:10:55 +0600 Subject: [PATCH 3/3] test-1 --- srcpkgs/nvidia390/patches/kernel-5.8.patch | 96 ---------------------- 1 file changed, 96 deletions(-) delete mode 100644 srcpkgs/nvidia390/patches/kernel-5.8.patch diff --git a/srcpkgs/nvidia390/patches/kernel-5.8.patch b/srcpkgs/nvidia390/patches/kernel-5.8.patch deleted file mode 100644 index 48649d7e6aa..00000000000 --- a/srcpkgs/nvidia390/patches/kernel-5.8.patch +++ /dev/null @@ -1,96 +0,0 @@ -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