Created
September 28, 2020 00:03
-
-
Save Miouyouyou/45652e26a160cbde6847e5600d54fb3a to your computer and use it in GitHub Desktop.
Patch for NVIDIA GRID K2 drivers on Linux CentOS 8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| From 4e935ec45deae81cdf800faba14c768d0dff3499 Mon Sep 17 00:00:00 2001 | |
| From: Miouyouyou <myy@miouyouyou.fr> | |
| Date: Sun, 27 Sep 2020 19:41:12 +0200 | |
| Subject: [PATCH] Make the drivers compile with 4.18 kernels on Cent OS 8 | |
| What a mess. There's basically a ton of little | |
| modifications here and there. | |
| Since the patch was created at 1 AM, I'll just put | |
| this link as a reference. Just use Google Translate, or | |
| something similar : | |
| https://myn.meganecco.org/1551964560.html | |
| Submitted-by: Miouyouyou <myy@miouyouyou.fr> | |
| --- | |
| common/inc/nv-list-helpers.h | 2 +- | |
| nvidia-drm/nvidia-drm-drv.c | 10 +++++----- | |
| nvidia-drm/nvidia-drm-gem.c | 4 ++-- | |
| nvidia-drm/nvidia-drm-priv.h | 2 +- | |
| nvidia-uvm/uvm8.c | 4 ++-- | |
| nvidia-uvm/uvm8_range_tree.c | 2 +- | |
| nvidia-uvm/uvm8_tools.c | 6 +++--- | |
| 7 files changed, 15 insertions(+), 15 deletions(-) | |
| diff --git a/common/inc/nv-list-helpers.h b/common/inc/nv-list-helpers.h | |
| index 0aed851..e6bb240 100644 | |
| --- a/common/inc/nv-list-helpers.h | |
| +++ b/common/inc/nv-list-helpers.h | |
| @@ -91,7 +91,7 @@ | |
| list_entry((pos)->member.next, typeof(*(pos)), member) | |
| #endif | |
| -static inline int list_is_first(const struct list_head *list, | |
| +static inline int nv_list_is_first(const struct list_head *list, | |
| const struct list_head *head) | |
| { | |
| return list->prev == head; | |
| diff --git a/nvidia-drm/nvidia-drm-drv.c b/nvidia-drm/nvidia-drm-drv.c | |
| index 400249d..381df22 100644 | |
| --- a/nvidia-drm/nvidia-drm-drv.c | |
| +++ b/nvidia-drm/nvidia-drm-drv.c | |
| @@ -592,20 +592,20 @@ static const struct drm_ioctl_desc nv_drm_ioctls[] = { | |
| #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) | |
| DRM_IOCTL_DEF_DRV(NVIDIA_GEM_IMPORT_NVKMS_MEMORY, | |
| nvidia_drm_gem_import_nvkms_memory, | |
| - DRM_CONTROL_ALLOW|DRM_UNLOCKED), | |
| + DRM_UNLOCKED), | |
| DRM_IOCTL_DEF_DRV(NVIDIA_ADD_NVKMS_FB, | |
| nvidia_drm_add_nvkms_fb, | |
| - DRM_CONTROL_ALLOW|DRM_UNLOCKED), | |
| + DRM_UNLOCKED), | |
| DRM_IOCTL_DEF_DRV(NVIDIA_MIGRATE_MODESET_OWNERSHIP, | |
| nvidia_drm_migrate_modeset_ownership, | |
| - DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED), | |
| + DRM_MASTER|DRM_UNLOCKED), | |
| #endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */ | |
| DRM_IOCTL_DEF_DRV(NVIDIA_GEM_IMPORT_USERSPACE_MEMORY, | |
| nvidia_drm_gem_import_userspace_memory, | |
| - DRM_CONTROL_ALLOW|DRM_RENDER_ALLOW|DRM_UNLOCKED), | |
| + DRM_RENDER_ALLOW|DRM_UNLOCKED), | |
| DRM_IOCTL_DEF_DRV(NVIDIA_GET_DEV_INFO, | |
| nvidia_drm_get_dev_info, | |
| - DRM_CONTROL_ALLOW|DRM_RENDER_ALLOW|DRM_UNLOCKED), | |
| + DRM_RENDER_ALLOW|DRM_UNLOCKED), | |
| }; | |
| static struct drm_driver nv_drm_driver = { | |
| diff --git a/nvidia-drm/nvidia-drm-gem.c b/nvidia-drm/nvidia-drm-gem.c | |
| index 9de023d..f07f48c 100644 | |
| --- a/nvidia-drm/nvidia-drm-gem.c | |
| +++ b/nvidia-drm/nvidia-drm-gem.c | |
| @@ -74,7 +74,7 @@ static struct nvidia_drm_gem_object *nvidia_drm_gem_new | |
| return ERR_PTR(ret); | |
| } | |
| - drm_gem_object_unreference_unlocked(&nv_gem->base); | |
| + drm_gem_object_put_unlocked(&nv_gem->base); | |
| nv_gem->handle = *handle; | |
| @@ -445,7 +445,7 @@ int nvidia_drm_dumb_map_offset(struct drm_file *file, | |
| done: | |
| if (gem != NULL) { | |
| - drm_gem_object_unreference_unlocked(gem); | |
| + drm_gem_object_put_unlocked(gem); | |
| } | |
| return ret; | |
| diff --git a/nvidia-drm/nvidia-drm-priv.h b/nvidia-drm/nvidia-drm-priv.h | |
| index 9844e10..caf24e2 100644 | |
| --- a/nvidia-drm/nvidia-drm-priv.h | |
| +++ b/nvidia-drm/nvidia-drm-priv.h | |
| @@ -62,7 +62,7 @@ | |
| #if defined(NV_DRM_DEV_UNREF_PRESENT) | |
| #define NV_DRM_DEV_FREE(__dev) drm_dev_unref(__dev) | |
| #else | |
| - #define NV_DRM_DEV_FREE(__dev) drm_dev_free(__dev) | |
| + #define NV_DRM_DEV_FREE(__dev) drm_dev_put(__dev) | |
| #endif | |
| #if defined(NV_DRM_HELPER_MODE_FILL_FB_STRUCT_HAS_CONST_MODE_CMD_ARG) | |
| diff --git a/nvidia-uvm/uvm8.c b/nvidia-uvm/uvm8.c | |
| index 9a16ef8..88da25d 100644 | |
| --- a/nvidia-uvm/uvm8.c | |
| +++ b/nvidia-uvm/uvm8.c | |
| @@ -106,7 +106,7 @@ static int uvm_vm_fault_sigbus(struct vm_area_struct *vma, struct vm_fault *vmf) | |
| return VM_FAULT_SIGBUS; | |
| } | |
| -static int uvm_vm_fault_sigbus_wrapper(struct vm_fault *vmf) | |
| +static vm_fault_t uvm_vm_fault_sigbus_wrapper(struct vm_fault *vmf) | |
| { | |
| #if defined(NV_VM_OPS_FAULT_REMOVED_VMA_ARG) | |
| return uvm_vm_fault_sigbus(vmf->vma, vmf); | |
| @@ -423,7 +423,7 @@ convert_error: | |
| } | |
| } | |
| -static int uvm_vm_fault_wrapper(struct vm_fault *vmf) | |
| +static vm_fault_t uvm_vm_fault_wrapper(struct vm_fault *vmf) | |
| { | |
| #if defined(NV_VM_OPS_FAULT_REMOVED_VMA_ARG) | |
| return uvm_vm_fault(vmf->vma, vmf); | |
| diff --git a/nvidia-uvm/uvm8_range_tree.c b/nvidia-uvm/uvm8_range_tree.c | |
| index b7170d0..ba15777 100644 | |
| --- a/nvidia-uvm/uvm8_range_tree.c | |
| +++ b/nvidia-uvm/uvm8_range_tree.c | |
| @@ -31,7 +31,7 @@ static uvm_range_tree_node_t *get_range_node(struct rb_node *rb_node) | |
| uvm_range_tree_node_t *uvm_range_tree_prev(uvm_range_tree_t *tree, uvm_range_tree_node_t *node) | |
| { | |
| - if (list_is_first(&node->list, &tree->head)) | |
| + if (nv_list_is_first(&node->list, &tree->head)) | |
| return NULL; | |
| return list_prev_entry(node, list); | |
| } | |
| diff --git a/nvidia-uvm/uvm8_tools.c b/nvidia-uvm/uvm8_tools.c | |
| index 824af70..0ea1419 100644 | |
| --- a/nvidia-uvm/uvm8_tools.c | |
| +++ b/nvidia-uvm/uvm8_tools.c | |
| @@ -176,7 +176,7 @@ static bool file_is_nvidia_uvm(struct file *filp) | |
| return (filp != NULL) && (filp->f_op == &uvm_fops); | |
| } | |
| -static void put_user_pages(struct page **pages, NvU64 page_count) | |
| +static void nv_put_user_pages(struct page **pages, NvU64 page_count) | |
| { | |
| NvU64 i; | |
| for (i = 0; i < page_count; i++) | |
| @@ -187,7 +187,7 @@ static void unmap_user_pages(struct page **pages, void *addr, NvU64 size) | |
| { | |
| size = DIV_ROUND_UP(size, PAGE_SIZE); | |
| vunmap((NvU8 *)addr); | |
| - put_user_pages(pages, size); | |
| + nv_put_user_pages(pages, size); | |
| uvm_kvfree(pages); | |
| } | |
| @@ -251,7 +251,7 @@ fail: | |
| uvm_kvfree(vmas); | |
| if (ret > 0) | |
| - put_user_pages(*pages, ret); | |
| + nv_put_user_pages(*pages, ret); | |
| else if (ret < 0) | |
| status = errno_to_nv_status(ret); | |
| -- | |
| 2.18.4 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment