void-packages/srcpkgs/nvidia340/files/kernel-5.8.patch
fosslinux fa8ba0ae8a nvidia340: move to manjaro's new patches.
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.
2020-11-09 10:11:57 -03:00

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