Skip to content

Instantly share code, notes, and snippets.

@icebreaker
Last active November 19, 2020 09:17
Show Gist options
  • Save icebreaker/4eaa2fd6024aa5a9b92a38317d38e2ed to your computer and use it in GitHub Desktop.
Save icebreaker/4eaa2fd6024aa5a9b92a38317d38e2ed to your computer and use it in GitHub Desktop.
Patch for the NVIDIA 340.108 (NVIDIA ION, etc) kernel module to make it compilable on new kernels (4.8 and later)
--- kernel/uvm/nvidia_uvm_lite.c 2019-12-12 00:04:24.000000000 +0200
+++ kernel/uvm/nvidia_uvm_lite.c 2020-11-19 02:15:59.338918014 +0200
@@ -820,7 +820,7 @@
}
#if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
-int _fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+vm_fault_t _fault(struct vm_fault *vmf)
{
#if defined(NV_VM_FAULT_HAS_ADDRESS)
unsigned long vaddr = vmf->address;
@@ -828,13 +828,14 @@
unsigned long vaddr = (unsigned long)vmf->virtual_address;
#endif
struct page *page = NULL;
+ struct vm_area_struct *vma = vmf->vma;
int retval;
retval = _fault_common(vma, vaddr, &page, vmf->flags);
vmf->page = page;
- return retval;
+ return (__force vm_fault_t) retval;
}
#else
@@ -868,7 +869,7 @@
// it's dealing with anonymous mapping (see handle_pte_fault).
//
#if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
-int _sigbus_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+vm_fault_t _sigbus_fault(struct vm_fault *vmf)
{
vmf->page = NULL;
return VM_FAULT_SIGBUS;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment