Last active
February 20, 2018 17:57
-
-
Save kernelOfTruth/8be4f6295309e248a30ecb1477e9ab07 to your computer and use it in GitHub Desktop.
Patch [use patch -R] to make proprietary linux nvidia driver 370.28 compatible with v4.9-rt1 kernel, change several of the module_license entries to make it "future-proof" for newer kernels [for users only ! non-distribution !]
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
| diff -Nruad nvidia-drivers-370.28-r1/work/kernel/common/inc/nv-mm.h nvidia-drivers-370.28-r1_orig/work/kernel/common/inc/nv-mm.h | |
| --- nvidia-drivers-370.28-r1/work/kernel/common/inc/nv-mm.h 2016-12-29 14:16:47.503650077 +0100 | |
| +++ nvidia-drivers-370.28-r1_orig/work/kernel/common/inc/nv-mm.h 2016-09-02 03:32:09.000000000 +0200 | |
| @@ -45,8 +45,8 @@ | |
| #define NV_GET_USER_PAGES get_user_pages | |
| #define NV_GET_USER_PAGES_REMOTE get_user_pages_remote | |
| #else | |
| - #define NV_GET_USER_PAGES(start, nr_pages, gup_flags, pages, vmas) \ | |
| - get_user_pages(current, current->mm, start, nr_pages, gup_flags, pages, vmas) | |
| + #define NV_GET_USER_PAGES(start, nr_pages, write, force, pages, vmas) \ | |
| + get_user_pages(current, current->mm, start, nr_pages, write, force, pages, vmas) | |
| #define NV_GET_USER_PAGES_REMOTE get_user_pages | |
| #endif | |
| diff -Nruad nvidia-drivers-370.28-r1/work/kernel/nvidia/os-mlock.c nvidia-drivers-370.28-r1_orig/work/kernel/nvidia/os-mlock.c | |
| --- nvidia-drivers-370.28-r1/work/kernel/nvidia/os-mlock.c 2016-12-29 14:17:10.098647831 +0100 | |
| +++ nvidia-drivers-370.28-r1_orig/work/kernel/nvidia/os-mlock.c 2016-09-02 03:32:09.000000000 +0200 | |
| @@ -117,7 +117,7 @@ | |
| down_read(&mm->mmap_sem); | |
| ret = NV_GET_USER_PAGES((unsigned long)address, | |
| - page_count, write ? FOLL_WRITE : 0, user_pages, NULL); | |
| + page_count, write, force, user_pages, NULL); | |
| up_read(&mm->mmap_sem); | |
| pinned = ret; | |
| diff -Nruad nvidia-drivers-370.28-r1/work/kernel/nvidia-drm/nvidia-drm-linux.c nvidia-drivers-370.28-r1_orig/work/kernel/nvidia-drm/nvidia-drm-linux.c | |
| --- nvidia-drivers-370.28-r1/work/kernel/nvidia-drm/nvidia-drm-linux.c 2016-12-29 15:09:41.947334491 +0100 | |
| +++ nvidia-drivers-370.28-r1_orig/work/kernel/nvidia-drm/nvidia-drm-linux.c 2016-09-02 03:33:06.000000000 +0200 | |
| @@ -137,7 +137,7 @@ | |
| down_read(&mm->mmap_sem); | |
| - pages_pinned = NV_GET_USER_PAGES(address, pages_count, write ? FOLL_WRITE :0, | |
| + pages_pinned = NV_GET_USER_PAGES(address, pages_count, write, force, | |
| user_pages, NULL); | |
| up_read(&mm->mmap_sem); | |
| @@ -221,7 +221,7 @@ | |
| module_exit(nv_linux_drm_exit); | |
| #if defined(MODULE_LICENSE) | |
| - MODULE_LICENSE("GPL"); | |
| + MODULE_LICENSE("MIT"); | |
| #endif | |
| #if defined(MODULE_INFO) | |
| MODULE_INFO(supported, "external"); | |
| diff -Nruad nvidia-drivers-370.28-r1/work/kernel/nvidia-drm/nvidia-drm-mmap.c nvidia-drivers-370.28-r1_orig/work/kernel/nvidia-drm/nvidia-drm-mmap.c | |
| --- nvidia-drivers-370.28-r1/work/kernel/nvidia-drm/nvidia-drm-mmap.c 2016-12-29 14:18:12.526641625 +0100 | |
| +++ nvidia-drivers-370.28-r1_orig/work/kernel/nvidia-drm/nvidia-drm-mmap.c 2016-09-02 03:33:06.000000000 +0200 | |
| @@ -113,7 +113,7 @@ | |
| /* Check the caller has been granted access to the buffer object */ | |
| - if (!drm_vma_node_is_allowed(&gem->vma_node, (struct drm_file*)filp)) | |
| + if (!drm_vma_node_is_allowed(&gem->vma_node, filp)) | |
| { | |
| ret = -EACCES; | |
| diff -Nruad nvidia-drivers-370.28-r1/work/kernel/nvidia-modeset/nvidia-modeset-linux.c nvidia-drivers-370.28-r1_orig/work/kernel/nvidia-modeset/nvidia-modeset-linux.c | |
| --- nvidia-drivers-370.28-r1/work/kernel/nvidia-modeset/nvidia-modeset-linux.c 2016-12-29 15:09:20.404336633 +0100 | |
| +++ nvidia-drivers-370.28-r1_orig/work/kernel/nvidia-modeset/nvidia-modeset-linux.c 2016-09-02 03:33:06.000000000 +0200 | |
| @@ -1248,7 +1248,7 @@ | |
| module_exit(nvkms_exit); | |
| #if defined(MODULE_LICENSE) | |
| - MODULE_LICENSE("GPL"); | |
| + MODULE_LICENSE("NVIDIA"); | |
| #endif | |
| #if defined(MODULE_INFO) | |
| MODULE_INFO(supported, "external"); | |
| diff -Nruad nvidia-drivers-370.28-r1/work/kernel/nvidia-uvm/uvm8_tools.c nvidia-drivers-370.28-r1_orig/work/kernel/nvidia-uvm/uvm8_tools.c | |
| --- nvidia-drivers-370.28-r1/work/kernel/nvidia-uvm/uvm8_tools.c 2016-12-29 14:17:53.251643541 +0100 | |
| +++ nvidia-drivers-370.28-r1_orig/work/kernel/nvidia-uvm/uvm8_tools.c 2016-09-02 03:30:48.000000000 +0200 | |
| @@ -224,7 +224,7 @@ | |
| } | |
| down_read(¤t->mm->mmap_sem); | |
| - ret = NV_GET_USER_PAGES(user_va, num_pages, 1 ? FOLL_WRITE : 0, *pages, vmas); | |
| + ret = NV_GET_USER_PAGES(user_va, num_pages, 1, 0, *pages, vmas); | |
| up_read(¤t->mm->mmap_sem); | |
| if (ret != num_pages) { | |
| status = NV_ERR_INVALID_ARGUMENT; | |
| diff -Nruad nvidia-drivers-370.28-r1/work/kernel/nvidia-uvm/uvm_common.c nvidia-drivers-370.28-r1_orig/work/kernel/nvidia-uvm/uvm_common.c | |
| --- nvidia-drivers-370.28-r1/work/kernel/nvidia-uvm/uvm_common.c 2016-12-29 15:08:05.620344067 +0100 | |
| +++ nvidia-drivers-370.28-r1_orig/work/kernel/nvidia-uvm/uvm_common.c 2016-09-02 03:30:48.000000000 +0200 | |
| @@ -550,5 +550,5 @@ | |
| MODULE_PARM_DESC(uvm_enable_builtin_tests, | |
| "Enable the UVM built-in tests. (This is a security risk)"); | |
| -MODULE_LICENSE("GPL"); | |
| +MODULE_LICENSE("MIT"); | |
| MODULE_INFO(supported, "external"); | |
| diff -Nruad nvidia-drivers-370.28-r1/work/kernel/nvidia-uvm/uvm_unsupported.c nvidia-drivers-370.28-r1_orig/work/kernel/nvidia-uvm/uvm_unsupported.c | |
| --- nvidia-drivers-370.28-r1/work/kernel/nvidia-uvm/uvm_unsupported.c 2016-12-29 15:08:40.946340555 +0100 | |
| +++ nvidia-drivers-370.28-r1_orig/work/kernel/nvidia-uvm/uvm_unsupported.c 2016-09-02 03:30:48.000000000 +0200 | |
| @@ -171,6 +171,6 @@ | |
| module_init(uvm_unsupported_module_init); | |
| module_exit(uvm_unsupported_exit); | |
| -MODULE_LICENSE("GPL"); | |
| +MODULE_LICENSE("MIT"); | |
| MODULE_INFO(supported, "external"); | |
Author
Hello! Would you kindly explain how to apply the patch? I'm not sure what goes at "..." for the patch line.
Any explicit command lines would be greatly appreciated!
Thank you!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
actually the inverse of the patch is correct 😆
just noticed that now after creating it ^^
so apply it via
Before compiling it with rt-kernel
the following command
needs to be executed