These forums have been archived and are now read-only.
The new forums are live and can be found at https://forums.eveonline.com/
Nvidia proprietary driver compile fail on kernels >4.9.x - patch.
# Issue №1diff -Naur kernel/common/inc/nv-mm.h b/kernel/common/inc/nv-mm.h--- kernel/common/inc/nv-mm.h 2016-10-22 13:42:48.220791689 +0300+++ b/kernel/common/inc/nv-mm.h 2016-10-22 13:51:23.906406480 +0300@@ -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, write, force, pages, vmas) \- get_user_pages(current, current->mm, start, nr_pages, write, force, pages, vmas)+ #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_REMOTE get_user_pages #endifdiff -Naur kernel/nvidia/os-mlock.c b/kernel/nvidia/os-mlock.c--- kernel/nvidia/os-mlock.c 2016-10-22 13:42:48.222791633 +0300+++ b/kernel/nvidia/os-mlock.c 2016-10-22 13:51:23.908406424 +0300@@ -117,7 +117,7 @@ down_read(&mm->mmap_sem); ret = NV_GET_USER_PAGES((unsigned long)address,- page_count, write, force, user_pages, NULL);+ page_count, write ? FOLL_WRITE : 0, user_pages, NULL); up_read(&mm->mmap_sem); pinned = ret; diff -Naur kernel/nvidia-drm/nvidia-drm-linux.c b/kernel/nvidia-drm/nvidia-drm-linux.c--- kernel/nvidia-drm/nvidia-drm-linux.c 2016-10-22 13:42:48.243791048 +0300+++ b/kernel/nvidia-drm/nvidia-drm-linux.c 2016-10-22 13:51:23.931405780 +0300@@ -137,7 +137,7 @@ down_read(&mm->mmap_sem); - pages_pinned = NV_GET_USER_PAGES(address, pages_count, write, force,+ pages_pinned = NV_GET_USER_PAGES(address, pages_count, write ? FOLL_WRITE :0, user_pages, NULL); up_read(&mm->mmap_sem); diff -Naur kernel/nvidia-uvm/uvm8_tools.c b/kernel/nvidia-uvm/uvm8_tools.c--- kernel/nvidia-uvm/uvm8_tools.c 2016-10-22 13:42:48.251790826 +0300+++ b/kernel/nvidia-uvm/uvm8_tools.c 2016-10-22 13:51:23.938405584 +0300@@ -224,7 +224,7 @@ } down_read(¤t->mm->mmap_sem);- ret = NV_GET_USER_PAGES(user_va, num_pages, 1, 0, *pages, vmas);+ ret = NV_GET_USER_PAGES(user_va, num_pages, 1 ? FOLL_WRITE : 0, *pages, vmas); up_read(¤t->mm->mmap_sem); if (ret != num_pages) { status = NV_ERR_INVALID_ARGUMENT;