nvidia rebuild

This commit is contained in:
Rmys
2020-09-10 19:53:41 +03:00
parent 56810e7116
commit 9d542e84e7
7 changed files with 194 additions and 10 deletions
@@ -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
@@ -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
//
+10 -4
View File
@@ -17,12 +17,11 @@
<AdditionalFile target="unfuck-340.108-build-fix.patch">unfuck-340.108-build-fix.patch</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="dkms.conf">dkms.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="unfuck-340.108-build-fix.patch">unfuck-340.108-build-fix.patch</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="kernel-5.5.patch">NVIDIA-Linux-x86_64-340.108-kernel-5.5.patch</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="kernel-5.6.patch">NVIDIA-Linux-x86_64-340.108-kernel-5.6.patch</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="kernel-5.7.patch">NVIDIA-Linux-x86_64-340.108-kernel-5.7.patch</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="kernel-5.8.patch">NVIDIA-Linux-x86_64-340.108-kernel-5.8.patch</AdditionalFile>
</AdditionalFiles>
<BuildDependencies>
<Dependency version="5.7.14">kernel-module-headers</Dependency>
<Dependency version="5.8.8">kernel-module-headers</Dependency>
</BuildDependencies>
</Source>
@@ -31,7 +30,7 @@
<IsA>driver</IsA>
<Summary>Kernel module for NVIDIA driver 340.xx releases</Summary>
<RuntimeDependencies>
<Dependency version="5.7.14">kernel</Dependency>
<Dependency version="5.8.8">kernel</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library" permanent="true">/lib/modules</Path>
@@ -157,6 +156,13 @@
</Package>
<History>
<Update release="34">
<Date>2020-09-10</Date>
<Version>340.108</Version>
<Comment>Rebuild.</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="33">
<Date>2020-07-05</Date>
<Version>340.108</Version>
+1 -1
View File
@@ -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")
@@ -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 <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
+10 -3
View File
@@ -16,11 +16,11 @@
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="dkms.conf">dkms.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="kernel-5.5.patch">NVIDIA-Linux-x86_64-390.132-kernel-5.5.patch</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="kernel-5.6.patch">NVIDIA-Linux-x86_64-390.132-kernel-5.6.patch</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="kernel-5.8.patch">NVIDIA-Linux-390.138-x86_64-kernel-5.8.patch</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="kernel-5.6-uvm.patch">NVIDIA-Linux-x86_64-390.132-kernel-5.6-uvm.patch</AdditionalFile>
</AdditionalFiles>
<BuildDependencies>
<Dependency version="5.7.14">kernel-module-headers</Dependency>
<Dependency version="5.8.8">kernel-module-headers</Dependency>
<Dependency>libX11-devel</Dependency>
<Dependency>gtk2-devel</Dependency>
<Dependency>gtk3-devel</Dependency>
@@ -32,7 +32,7 @@
<IsA>driver</IsA>
<Summary>Kernel module for current NVIDIA graphics driver releases</Summary>
<RuntimeDependencies>
<Dependency version="5.7.14">kernel</Dependency>
<Dependency version="5.8.8">kernel</Dependency>
<!-- <Dependency release="current">module-nvidia-current-userspace</Dependency> -->
</RuntimeDependencies>
<Files>
@@ -196,6 +196,13 @@
</Package>
<History>
<Update release="11">
<Date>2020-09-10</Date>
<Version>390.138</Version>
<Comment>Rebuild.</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="10">
<Date>2020-08-06</Date>
<Version>390.138</Version>
+9 -2
View File
@@ -13,7 +13,7 @@
<Description>NVIDIA graphics drivers provide optimized 2D/3D performance.</Description>
<Archive sha1sum="3ff62a457f2570eb67c3ce7fb3800ddcbe54164e" type="binary">http://http.download.nvidia.com/XFree86/Linux-x86_64/430.64/NVIDIA-Linux-x86_64-430.64.run</Archive>
<BuildDependencies>
<Dependency version="5.7.14">kernel-module-headers</Dependency>
<Dependency version="5.8.8">kernel-module-headers</Dependency>
<Dependency>libX11-devel</Dependency>
<Dependency>gtk2-devel</Dependency>
<Dependency>gtk3-devel</Dependency>
@@ -31,7 +31,7 @@
<IsA>driver</IsA>
<Summary>Kernel module for current NVIDIA graphics driver releases</Summary>
<RuntimeDependencies>
<Dependency version="5.7.14">kernel</Dependency>
<Dependency version="5.8.8">kernel</Dependency>
<!-- <Dependency release="current">module-nvidia430-userspace</Dependency> -->
</RuntimeDependencies>
<Files>
@@ -224,6 +224,13 @@
</Package>
<History>
<Update release="7">
<Date>2020-09-10</Date>
<Version>430.64</Version>
<Comment>Rebuild.</Comment>
<Name>Mustafa Cinasal Bojara</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="6">
<Date>2020-07-05</Date>
<Version>430.64</Version>