fa8ba0ae8a
Drop the patches we currently have, some of which are manjaro's old patches, and use the new ones which put all of the changes up to 5.7 in one patch.
92 lines
3 KiB
Diff
92 lines
3 KiB
Diff
From 2cc3342b4b3c96bcc4062513011d35c079b009a2 Mon Sep 17 00:00:00 2001
|
|
From: graysky <graysky@archlinux.us>
|
|
Date: Thu, 22 Oct 2020 06:59:59 -0400
|
|
Subject: [PATCH 2/3] kernel-5.8
|
|
|
|
credit: https://launchpad.net/~kelebek333/+archive/ubuntu/nvidia-legacy/+packages
|
|
extracted from: https://launchpadlibrarian.net/492468557/nvidia-graphics-drivers-340_340.108-1lmtrfocal3_340.108-2lmtrfocal.diff.gz
|
|
---
|
|
kernel/nv-linux.h | 8 ++++++++
|
|
kernel/nvidia-modules-common.mk | 1 +
|
|
kernel/os-mlock.c | 8 ++++++++
|
|
kernel/uvm/nvidia_uvm_lite_api.c | 4 ++++
|
|
4 files changed, 21 insertions(+)
|
|
|
|
diff --git a/kernel/nv-linux.h b/kernel/nv-linux.h
|
|
index 83e6433..d055552 100644
|
|
--- a/kernel/nv-linux.h
|
|
+++ b/kernel/nv-linux.h
|
|
@@ -669,11 +669,19 @@ extern nv_spinlock_t km_lock;
|
|
# 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) \
|
|
{ \
|
|
diff --git a/kernel/nvidia-modules-common.mk b/kernel/nvidia-modules-common.mk
|
|
index b94591b..0e4c228 100644
|
|
--- a/kernel/nvidia-modules-common.mk
|
|
+++ b/kernel/nvidia-modules-common.mk
|
|
@@ -222,6 +222,7 @@ build-sanity-checks:
|
|
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 \
|
|
diff --git a/kernel/os-mlock.c b/kernel/os-mlock.c
|
|
index 8a1fa2f..fc50543 100644
|
|
--- a/kernel/os-mlock.c
|
|
+++ b/kernel/os-mlock.c
|
|
@@ -44,11 +44,19 @@ RM_STATUS NV_API_CALL os_lock_user_pages(
|
|
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 --git a/kernel/uvm/nvidia_uvm_lite_api.c b/kernel/uvm/nvidia_uvm_lite_api.c
|
|
index 8448eb6..97a4818 100644
|
|
--- a/kernel/uvm/nvidia_uvm_lite_api.c
|
|
+++ b/kernel/uvm/nvidia_uvm_lite_api.c
|
|
@@ -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
|
|
//
|
|
--
|
|
2.29.0
|
|
|