Sorry but the patch returned other errors: /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c: In function ‘os_lock_user_pages’: /usr/src/linux-4.6.2-1/arch/x86/include/asm/current.h:17:17: warning: passing argument 1 of ‘get_user_pages’ makes integer from pointer without a cast [-Wint-conversion] #define current get_current() ^ /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:119:26: note: in expansion of macro ‘current’ ret = get_user_pages(current, mm, (unsigned long)address, ^ In file included from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-pgprot.h:17:0, from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-linux.h:17, from /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:15: /usr/src/linux-4.6.2-1/include/linux/mm.h:1266:6: note: expected ‘long unsigned int’ but argument is of type ‘struct task_struct *’ long get_user_pages(unsigned long start, unsigned long nr_pages, ^ /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:119:35: warning: passing argument 2 of ‘get_user_pages’ makes integer from pointer without a cast [-Wint-conversion] ret = get_user_pages(current, mm, (unsigned long)address, ^ In file included from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-pgprot.h:17:0, from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-linux.h:17, from /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:15: /usr/src/linux-4.6.2-1/include/linux/mm.h:1266:6: note: expected ‘long unsigned int’ but argument is of type ‘struct mm_struct *’ long get_user_pages(unsigned long start, unsigned long nr_pages, ^ /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:120:25: warning: passing argument 5 of ‘get_user_pages’ makes pointer from integer without a cast [-Wint-conversion] page_count, write, force, user_pages, NULL); ^ In file included from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-pgprot.h:17:0, from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-linux.h:17, from /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:15: /usr/src/linux-4.6.2-1/include/linux/mm.h:1266:6: note: expected ‘struct page **’ but argument is of type ‘NvBool {aka unsigned char}’ long get_user_pages(unsigned long start, unsigned long nr_pages, ^ /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:120:32: warning: passing argument 6 of ‘get_user_pages’ makes pointer from integer without a cast [-Wint-conversion] page_count, write, force, user_pages, NULL); ^ In file included from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-pgprot.h:17:0, from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-linux.h:17, from /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:15: /usr/src/linux-4.6.2-1/include/linux/mm.h:1266:6: note: expected ‘struct vm_area_struct **’ but argument is of type ‘NvBool {aka unsigned char}’ long get_user_pages(unsigned long start, unsigned long nr_pages, ^ /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:119:11: error: too many arguments to function ‘get_user_pages’ ret = get_user_pages(current, mm, (unsigned long)address, ^ In file included from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-pgprot.h:17:0, from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-linux.h:17, from /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:15: /usr/src/linux-4.6.2-1/include/linux/mm.h:1266:6: note: declared here long get_user_pages(unsigned long start, unsigned long nr_pages, ^ /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:132:13: error: implicit declaration of function ‘page_cache_release’ [-Werror=implicit-function-declaration] page_cache_release(user_pages[i]); ^ cc1: some warnings being treated as errors make[3]: *** [/usr/src/linux-4.6.2-1/scripts/Makefile.build:294: /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.o] Error 1 make[2]: *** [/usr/src/linux-4.6.2-1/Makefile:1455: _module_/var/lib/dkms/nvidia/361.42/build] Error 2 make[2]: Leaving directory '/usr/src/linux-4.6.2-1-obj/x86_64/default' make[1]: *** [Makefile:146: sub-make] Error 2 make[1]: Leaving directory '/usr/src/linux-4.6.2-1' make: *** [Makefile:81: modules] Error 2