summarylogtreecommitdiffstats
path: root/unfuck.patch
blob: dc58bff0018d12a0dba558cd5a3b3fec13279c84 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
diff -urp work.orig/kernel/common/inc/nv-linux.h work/kernel/common/inc/nv-linux.h
--- work.orig/kernel/common/inc/nv-linux.h	2017-09-29 06:17:46.000000000 +0200
+++ work/kernel/common/inc/nv-linux.h	2017-10-08 00:52:42.721523788 +0200
@@ -1189,7 +1189,8 @@ extern void *nvidia_stack_t_cache;
 #if (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 5)
 #define NV_KMEM_CACHE_CREATE_FULL(name, size, align, flags, ctor) \
     kmem_cache_create(name, size, align, flags, ctor)
-
+#define NV_KMEM_CACHE_CREATE_FULL_USERCOPY(name, size, align, flags, useroffset, usersize, ctor) \
+    kmem_cache_create_usercopy(name, size, align, flags, useroffset, usersize, ctor)
 #else
 #define NV_KMEM_CACHE_CREATE_FULL(name, size, align, flags, ctor) \
     kmem_cache_create(name, size, align, flags, ctor, NULL)
@@ -1198,6 +1199,9 @@ extern void *nvidia_stack_t_cache;
 #define NV_KMEM_CACHE_CREATE(name, type)    \
     NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, 0, NULL)
 
+#define NV_KMEM_CACHE_CREATE_USERCOPY(name, type)    \
+    NV_KMEM_CACHE_CREATE_FULL_USERCOPY(name, sizeof(type), 0, 0, 0, sizeof(type), NULL)
+
 #define NV_KMEM_CACHE_DESTROY(kmem_cache)   \
     kmem_cache_destroy(kmem_cache)
 
diff -urp work.orig/kernel/nvidia/nv.c work/kernel/nvidia/nv.c
--- work.orig/kernel/nvidia/nv.c	2017-09-29 06:17:45.000000000 +0200
+++ work/kernel/nvidia/nv.c	2017-10-08 00:52:42.721523788 +0200
@@ -682,7 +682,7 @@ int __init nvidia_init_module(void)
 
     nv_memdbg_init();
 
-    nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE(nvidia_stack_cache_name,
+    nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE_USERCOPY(nvidia_stack_cache_name,
                                                 nvidia_stack_t);
     if (nvidia_stack_t_cache == NULL)
     {