Created
May 24, 2023 16:52
-
-
Save gonsolo/3232b9612dde6535658ec0ba2086bf30 to your computer and use it in GitHub Desktop.
Run nvidia driver 530.30.02 on Linux 6.3.3
This file contains 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
diff -u -r nvidia-530.30.02/nvidia/nv-mmap.c /home/gonsolo/nvidia-530.30.02/nvidia/nv-mmap.c | |
--- nvidia-530.30.02/nvidia/nv-mmap.c 2023-02-22 05:37:36.000000000 +0100 | |
+++ /home/gonsolo/nvidia-530.30.02/nvidia/nv-mmap.c 2023-05-24 18:49:07.797789349 +0200 | |
@@ -458,7 +458,7 @@ | |
} | |
// Needed for the linux kernel for mapping compound pages | |
- vma->vm_flags |= VM_MIXEDMAP; | |
+ vm_flags_set(vma, VM_MIXEDMAP); | |
for (i = 0, addr = mmap_context->page_array[0]; i < pages; | |
addr = mmap_context->page_array[++i], start += PAGE_SIZE) | |
@@ -603,7 +603,7 @@ | |
} | |
up(&nvl->mmap_lock); | |
- vma->vm_flags |= VM_IO | VM_PFNMAP | VM_DONTEXPAND; | |
+ vm_flags_set(vma, VM_IO | VM_PFNMAP | VM_DONTEXPAND); | |
} | |
else | |
{ | |
@@ -670,15 +670,15 @@ | |
NV_PRINT_AT(NV_DBG_MEMINFO, at); | |
- vma->vm_flags |= (VM_IO | VM_LOCKED | VM_RESERVED); | |
- vma->vm_flags |= (VM_DONTEXPAND | VM_DONTDUMP); | |
+ vm_flags_set(vma, VM_IO | VM_LOCKED | VM_RESERVED); | |
+ vm_flags_set(vma, VM_DONTEXPAND | VM_DONTDUMP); | |
} | |
if ((prot & NV_PROTECT_WRITEABLE) == 0) | |
{ | |
vma->vm_page_prot = NV_PGPROT_READ_ONLY(vma->vm_page_prot); | |
- vma->vm_flags &= ~VM_WRITE; | |
- vma->vm_flags &= ~VM_MAYWRITE; | |
+ vm_flags_clear(vma, VM_WRITE); | |
+ vm_flags_clear(vma, VM_MAYWRITE); | |
} | |
vma->vm_ops = &nv_vm_ops; | |
diff -u -r nvidia-530.30.02/nvidia-drm/nvidia-drm-gem-user-memory.c /home/gonsolo/nvidia-530.30.02/nvidia-drm/nvidia-drm-gem-user-memory.c | |
--- nvidia-530.30.02/nvidia-drm/nvidia-drm-gem-user-memory.c 2023-02-22 04:45:19.000000000 +0100 | |
+++ /home/gonsolo/nvidia-530.30.02/nvidia-drm/nvidia-drm-gem-user-memory.c 2023-05-24 18:44:12.963686845 +0200 | |
@@ -92,9 +92,9 @@ | |
return -EINVAL; | |
} | |
- vma->vm_flags &= ~VM_PFNMAP; | |
- vma->vm_flags &= ~VM_IO; | |
- vma->vm_flags |= VM_MIXEDMAP; | |
+ vm_flags_clear(vma, VM_PFNMAP); | |
+ vm_flags_clear(vma, VM_IO); | |
+ vm_flags_set(vma, VM_MIXEDMAP); | |
return 0; | |
} | |
diff -u -r nvidia-530.30.02/nvidia-uvm/uvm.c /home/gonsolo/nvidia-530.30.02/nvidia-uvm/uvm.c | |
--- nvidia-530.30.02/nvidia-uvm/uvm.c 2023-02-22 05:37:20.000000000 +0100 | |
+++ /home/gonsolo/nvidia-530.30.02/nvidia-uvm/uvm.c 2023-05-24 18:44:17.044188625 +0200 | |
@@ -696,7 +696,7 @@ | |
// of removing CPU mappings in the parent on fork()+exec(). Users can call | |
// madvise(MDV_DOFORK) if the child process requires access to the | |
// allocation. | |
- vma->vm_flags |= VM_MIXEDMAP | VM_DONTEXPAND | VM_DONTCOPY; | |
+ vm_flags_set(vma, VM_MIXEDMAP | VM_DONTEXPAND | VM_DONTCOPY); | |
vma->vm_ops = &uvm_vm_ops_managed; | |
Another patch on top for v6.4-rc3:
diff -u -r nvidia-530.30.02.old/nvidia-drm/nvidia-drm-drv.c nvidia-530.30.02/nvidia-drm/nvidia-drm-drv.c
--- nvidia-530.30.02.old/nvidia-drm/nvidia-drm-drv.c 2023-05-25 09:30:12.959248162 +0200
+++ nvidia-530.30.02/nvidia-drm/nvidia-drm-drv.c 2023-05-25 09:30:22.960309458 +0200
@@ -1436,7 +1436,6 @@
nv_drm_driver.dumb_create = nv_drm_dumb_create;
nv_drm_driver.dumb_map_offset = nv_drm_dumb_map_offset;
- nv_drm_driver.dumb_destroy = nv_drm_dumb_destroy;
#endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */
}
Thank you for posting on Nvidia forum. Works for latest kernel update in Fedora 37.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Also works on 6.3.4.