From fea401df7500bfbead5a42b1e74560dbddf2f5a3 Mon Sep 17 00:00:00 2001 From: graysky Date: Thu, 22 Oct 2020 07:00:35 -0400 Subject: [PATCH 3/3] kernel-5.9 credit: https://github.com/warpme/minimyth2/blob/master/script/nvidia/nvidia-340.108/files/nvidia-340.108-fix-5.9-kernel-compile.patch --- kernel/nv-drm.c | 8 ++++++++ kernel/nv-linux.h | 9 +++++++-- kernel/nv.c | 4 ++++ kernel/uvm/nvidia_uvm_linux.h | 2 ++ 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/kernel/nv-drm.c b/kernel/nv-drm.c index 85db07e..f0c1299 100644 --- a/kernel/nv-drm.c +++ b/kernel/nv-drm.c @@ -415,7 +415,11 @@ static struct drm_driver nv_drm_driver = { .set_busid = drm_pci_set_busid, #endif +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0) + .gem_free_object_unlocked = nv_gem_free, +#else .gem_free_object = nv_gem_free, +#endif .prime_handle_to_fd = drm_gem_prime_handle_to_fd, .gem_prime_export = drm_gem_prime_export, @@ -511,8 +515,12 @@ RM_STATUS NV_API_CALL nv_alloc_os_descriptor_handle( #if defined(NV_DRM_GEM_OBJECT_PUT_UNLOCKED_PRESENT) drm_gem_object_put_unlocked(&nv_obj->base); +#else +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0) + drm_gem_object_put_locked(&nv_obj->base); #else drm_gem_object_unreference_unlocked(&nv_obj->base); +#endif #endif status = RM_OK; diff --git a/kernel/nv-linux.h b/kernel/nv-linux.h index d055552..524a8fe 100644 --- a/kernel/nv-linux.h +++ b/kernel/nv-linux.h @@ -136,8 +136,10 @@ #if defined(NVCPU_X86_64) && !defined(HAVE_COMPAT_IOCTL) #include /* sys_ioctl() */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0) #include /* register_ioctl32_conversion() */ #endif +#endif #if !defined(NV_FILE_OPERATIONS_HAS_IOCTL) && \ !defined(NV_FILE_OPERATIONS_HAS_UNLOCKED_IOCTL) @@ -2249,10 +2251,13 @@ static inline NvU64 nv_node_end_pfn(int nid) pages, vmas, NULL); #else - +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0) + return get_user_pages_remote(mm, start, nr_pages, flags, + pages, vmas, NULL); +#else return get_user_pages_remote(tsk, mm, start, nr_pages, flags, pages, vmas); - +#endif #endif } diff --git a/kernel/nv.c b/kernel/nv.c index a218f83..be4e0f8 100644 --- a/kernel/nv.c +++ b/kernel/nv.c @@ -2785,7 +2785,11 @@ nvidia_probe #if defined(CONFIG_VGA_ARB) #if defined(VGA_DEFAULT_DEVICE) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0) + vga_get(VGA_DEFAULT_DEVICE, VGA_RSRC_LEGACY_MASK, 0); +#else vga_tryget(VGA_DEFAULT_DEVICE, VGA_RSRC_LEGACY_MASK); +#endif #endif vga_set_legacy_decoding(dev, VGA_RSRC_NONE); #endif diff --git a/kernel/uvm/nvidia_uvm_linux.h b/kernel/uvm/nvidia_uvm_linux.h index 1625209..efc181f 100644 --- a/kernel/uvm/nvidia_uvm_linux.h +++ b/kernel/uvm/nvidia_uvm_linux.h @@ -158,8 +158,10 @@ #if defined(NVCPU_X86_64) && !defined(HAVE_COMPAT_IOCTL) #include /* sys_ioctl() */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0) #include /* register_ioctl32_conversion() */ #endif +#endif #if !defined(NV_FILE_OPERATIONS_HAS_IOCTL) && \ !defined(NV_FILE_OPERATIONS_HAS_UNLOCKED_IOCTL) -- 2.29.0