Gentoo Archives: gentoo-commits

From: Jeroen Roovers <jer@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/files/, x11-drivers/nvidia-drivers/
Date: Wed, 16 Jan 2019 10:32:36
Message-Id: 1547634731.421d7dc6fb791f8edde480dc6d989ade59c54710.jer@gentoo
1 commit: 421d7dc6fb791f8edde480dc6d989ade59c54710
2 Author: Jeroen Roovers <jer <AT> gentoo <DOT> org>
3 AuthorDate: Wed Jan 16 10:24:43 2019 +0000
4 Commit: Jeroen Roovers <jer <AT> gentoo <DOT> org>
5 CommitDate: Wed Jan 16 10:32:11 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=421d7dc6
7
8 x11-drivers/nvidia-drivers: Drop USE=pax_kernel
9
10 Closes: https://bugs.gentoo.org/551366
11 Closes: https://bugs.gentoo.org/593624
12 Closes: https://bugs.gentoo.org/600156
13 Closes: https://bugs.gentoo.org/629062
14 Closes: https://bugs.gentoo.org/633738
15 Closes: https://bugs.gentoo.org/650482
16 Package-Manager: Portage-2.3.56, Repoman-2.3.12
17 Signed-off-by: Jeroen Roovers <jer <AT> gentoo.org>
18
19 .../files/nvidia-drivers-331.13-pax-usercopy.patch | 52 ---
20 .../files/nvidia-drivers-337.12-pax-constify.patch | 25 --
21 .../files/nvidia-drivers-375.20-pax.patch | 406 ---------------------
22 x11-drivers/nvidia-drivers/metadata.xml | 4 -
23 .../nvidia-drivers/nvidia-drivers-340.107.ebuild | 12 +-
24 .../nvidia-drivers/nvidia-drivers-390.87.ebuild | 11 +-
25 .../nvidia-drivers/nvidia-drivers-410.93.ebuild | 9 +-
26 .../nvidia-drivers/nvidia-drivers-415.25.ebuild | 9 +-
27 .../nvidia-drivers/nvidia-drivers-415.27.ebuild | 9 +-
28 9 files changed, 7 insertions(+), 530 deletions(-)
29
30 diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-331.13-pax-usercopy.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-331.13-pax-usercopy.patch
31 deleted file mode 100644
32 index 9777ce6c2d4..00000000000
33 --- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-331.13-pax-usercopy.patch
34 +++ /dev/null
35 @@ -1,52 +0,0 @@
36 ---- a/kernel/nv-linux.h
37 -+++ b/kernel/nv-linux.h
38 -@@ -757,16 +757,16 @@
39 -
40 - #if defined(NV_KMEM_CACHE_CREATE_PRESENT)
41 - #if (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 6)
42 --#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type) \
43 -+#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type, flags) \
44 - { \
45 - kmem_cache = kmem_cache_create(name, sizeof(type), \
46 -- 0, 0, NULL, NULL); \
47 -+ 0, flags, NULL, NULL); \
48 - }
49 - #elif (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 5)
50 --#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type) \
51 -+#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type, flags) \
52 - { \
53 - kmem_cache = kmem_cache_create(name, sizeof(type), \
54 -- 0, 0, NULL); \
55 -+ 0, flags, NULL); \
56 - }
57 - #else
58 - #error "NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT value unrecognized!"
59 ---- a/kernel/nv.c
60 -+++ b/kernel/nv.c
61 -@@ -794,7 +794,7 @@
62 - NV_SPIN_LOCK_INIT(&km_lock);
63 - #endif
64 -
65 -- NV_KMEM_CACHE_CREATE(nv_stack_t_cache, NV_STACK_CACHE_STR, nv_stack_t);
66 -+ NV_KMEM_CACHE_CREATE(nv_stack_t_cache, NV_STACK_CACHE_STR, nv_stack_t, SLAB_USERCOPY);
67 - if (nv_stack_t_cache == NULL)
68 - {
69 - nv_printf(NV_DBG_ERRORS, "NVRM: stack cache allocation failed!\n");
70 -@@ -924,7 +924,7 @@
71 - nv->os_state = (void *) &nv_ctl_device;
72 - nv_lock_init_locks(nv);
73 -
74 -- NV_KMEM_CACHE_CREATE(nv_pte_t_cache, NV_PTE_CACHE_STR, nv_pte_t);
75 -+ NV_KMEM_CACHE_CREATE(nv_pte_t_cache, NV_PTE_CACHE_STR, nv_pte_t, 0);
76 - if (nv_pte_t_cache == NULL)
77 - {
78 - rc = -ENOMEM;
79 -@@ -935,7 +935,7 @@
80 - if (NV_BUILD_MODULE_INSTANCES == 0)
81 - {
82 - NV_KMEM_CACHE_CREATE(nvidia_p2p_page_t_cache, "nvidia_p2p_page_t",
83 -- nvidia_p2p_page_t);
84 -+ nvidia_p2p_page_t, 0);
85 - if (nvidia_p2p_page_t_cache == NULL)
86 - {
87 - rc = -ENOMEM;
88
89 diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-337.12-pax-constify.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-337.12-pax-constify.patch
90 deleted file mode 100644
91 index 0ec9edf99cc..00000000000
92 --- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-337.12-pax-constify.patch
93 +++ /dev/null
94 @@ -1,25 +0,0 @@
95 ---- a/kernel/uvm/nvidia_uvm_common.c
96 -+++ b/kernel/uvm/nvidia_uvm_common.c
97 -@@ -95,7 +95,6 @@ static RM_STATUS uvmnext_gpu_event_stop_
98 - #endif // NVIDIA_UVM_NEXT_ENABLED
99 -
100 - static dev_t g_uvmBaseDev;
101 --struct UvmOpsUvmEvents g_exportedUvmOps;
102 -
103 - // TODO: This would be easier if RM allowed for multiple registrations, since we
104 - // could register UVM-Lite and UVM-Next separately (bug 1372835).
105 -@@ -147,9 +146,11 @@ static RM_STATUS uvmSetupGpuProvider(voi
106 - RM_STATUS status = RM_OK;
107 -
108 - #ifdef NVIDIA_UVM_RM_ENABLED
109 -- g_exportedUvmOps.startDevice = uvm_gpu_event_start_device;
110 -- g_exportedUvmOps.stopDevice = uvm_gpu_event_stop_device;
111 -- g_exportedUvmOps.isrTopHalf = uvmnext_isr_top_half;
112 -+ static struct UvmOpsUvmEvents g_exportedUvmOps = {
113 -+ .startDevice = uvm_gpu_event_start_device,
114 -+ .stopDevice = uvm_gpu_event_stop_device,
115 -+ .isrTopHalf = uvmnext_isr_top_half,
116 -+ };
117 -
118 - // call RM to exchange the function pointers.
119 - status = nvUvmInterfaceRegisterUvmCallbacks(&g_exportedUvmOps);
120
121 diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.20-pax.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.20-pax.patch
122 deleted file mode 100644
123 index 9dd245a1f16..00000000000
124 --- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-375.20-pax.patch
125 +++ /dev/null
126 @@ -1,406 +0,0 @@
127 -diff -urp work.orig/kernel/common/inc/nv-linux.h work/kernel/common/inc/nv-linux.h
128 ---- work.orig/kernel/common/inc/nv-linux.h 2016-11-27 21:56:50.391617167 +0100
129 -+++ work/kernel/common/inc/nv-linux.h 2016-11-27 22:04:14.045516163 +0100
130 -@@ -1310,7 +1310,8 @@ extern void *nvidia_stack_t_cache;
131 - #if (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 5)
132 - #define NV_KMEM_CACHE_CREATE_FULL(name, size, align, flags, ctor) \
133 - kmem_cache_create(name, size, align, flags, ctor)
134 --
135 -+#define NV_KMEM_CACHE_CREATE_FULL_USERCOPY(name, size, align, flags, useroffset, usersize, ctor) \
136 -+ kmem_cache_create_usercopy(name, size, align, flags, useroffset, usersize, ctor)
137 - #else
138 - #define NV_KMEM_CACHE_CREATE_FULL(name, size, align, flags, ctor) \
139 - kmem_cache_create(name, size, align, flags, ctor, NULL)
140 -@@ -1319,6 +1320,14 @@ extern void *nvidia_stack_t_cache;
141 - #define NV_KMEM_CACHE_CREATE(name, type) \
142 - NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, 0, NULL)
143 -
144 -+#ifdef SLAB_USERCOPY
145 -+#define NV_KMEM_CACHE_CREATE_USERCOPY(name, type) \
146 -+ NV_KMEM_CACHE_CREATE_FULL(name, sizeof(type), 0, SLAB_USERCOPY, NULL)
147 -+#else
148 -+#define NV_KMEM_CACHE_CREATE_USERCOPY(name, type) \
149 -+ NV_KMEM_CACHE_CREATE_FULL_USERCOPY(name, sizeof(type), 0, 0, 0, sizeof(type), NULL)
150 -+#endif
151 -+
152 - #define NV_KMEM_CACHE_DESTROY(kmem_cache) \
153 - kmem_cache_destroy(kmem_cache)
154 -
155 -diff -urp work.orig/kernel/common/inc/nv-modeset-interface.h work/kernel/common/inc/nv-modeset-interface.h
156 ---- work.orig/kernel/common/inc/nv-modeset-interface.h 2016-11-27 21:56:50.391617167 +0100
157 -+++ work/kernel/common/inc/nv-modeset-interface.h 2016-11-27 21:54:23.971706350 +0100
158 -@@ -72,7 +72,7 @@ typedef struct {
159 - * mix nvidia and nvidia-modeset kernel modules from different
160 - * releases.
161 - */
162 -- const char *version_string;
163 -+// const char *version_string;
164 -
165 - /*
166 - * Return system information.
167 -@@ -117,6 +117,6 @@ typedef struct {
168 -
169 - } nvidia_modeset_rm_ops_t;
170 -
171 --NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops);
172 -+NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string);
173 -
174 - #endif /* _NV_MODESET_INTERFACE_H_ */
175 -diff -urp work.orig/kernel/common/inc/nv-register-module.h work/kernel/common/inc/nv-register-module.h
176 ---- work.orig/kernel/common/inc/nv-register-module.h 2016-11-27 21:56:50.391617167 +0100
177 -+++ work/kernel/common/inc/nv-register-module.h 2016-11-27 21:54:23.971706350 +0100
178 -@@ -34,7 +34,7 @@ typedef struct nvidia_module_s {
179 - int (*ioctl)(struct inode *, struct file * file, unsigned int cmd, unsigned long arg);
180 - unsigned int (*poll)(struct file * file, poll_table *wait);
181 -
182 --} nvidia_module_t;
183 -+} __do_const nvidia_module_t;
184 -
185 - int nvidia_register_module(nvidia_module_t *);
186 - int nvidia_unregister_module(nvidia_module_t *);
187 -diff -urp work.orig/kernel/nvidia/nv.c work/kernel/nvidia/nv.c
188 ---- work.orig/kernel/nvidia/nv.c 2016-11-27 21:56:50.395629748 +0100
189 -+++ work/kernel/nvidia/nv.c 2016-11-27 21:54:23.971706350 +0100
190 -@@ -666,7 +666,7 @@ int __init nvidia_init_module(void)
191 - NV_SPIN_LOCK_INIT(&km_lock);
192 - #endif
193 -
194 -- nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE(nvidia_stack_cache_name,
195 -+ nvidia_stack_t_cache = NV_KMEM_CACHE_CREATE_USERCOPY(nvidia_stack_cache_name,
196 - nvidia_stack_t);
197 - if (nvidia_stack_t_cache == NULL)
198 - {
199 -diff -urp work.orig/kernel/nvidia/nv-chrdev.c work/kernel/nvidia/nv-chrdev.c
200 ---- work.orig/kernel/nvidia/nv-chrdev.c 2016-11-27 21:56:50.395629748 +0100
201 -+++ work/kernel/nvidia/nv-chrdev.c 2016-11-27 21:54:23.971706350 +0100
202 -@@ -20,8 +20,6 @@ int nv_register_chrdev(void *param)
203 - {
204 - nvidia_module_t *module = (nvidia_module_t *)param;
205 -
206 -- module->instance = nv_module_instance;
207 --
208 - return (nvidia_register_module(module));
209 - }
210 -
211 -diff -urp work.orig/kernel/nvidia/nv-instance.c work/kernel/nvidia/nv-instance.c
212 ---- work.orig/kernel/nvidia/nv-instance.c 2016-11-27 21:56:50.395629748 +0100
213 -+++ work/kernel/nvidia/nv-instance.c 2016-11-27 21:54:23.971706350 +0100
214 -@@ -51,6 +51,7 @@ struct pci_driver nv_pci_driver = {
215 - nvidia_module_t nv_fops = {
216 - .owner = THIS_MODULE,
217 - .module_name = MODULE_NAME,
218 -+ .instance = MODULE_INSTANCE_NUMBER,
219 - .open = nvidia_open,
220 - .close = nvidia_close,
221 - .ioctl = nvidia_ioctl,
222 -diff -urp work.orig/kernel/nvidia/nv-mmap.c work/kernel/nvidia/nv-mmap.c
223 ---- work.orig/kernel/nvidia/nv-mmap.c 2016-11-27 21:56:50.395629748 +0100
224 -+++ work/kernel/nvidia/nv-mmap.c 2016-11-27 21:54:23.971706350 +0100
225 -@@ -102,12 +102,12 @@ nvidia_vma_release(struct vm_area_struct
226 - }
227 -
228 - #if defined(NV_VM_OPERATIONS_STRUCT_HAS_ACCESS)
229 --static int
230 -+static ssize_t
231 - nvidia_vma_access(
232 - struct vm_area_struct *vma,
233 - unsigned long addr,
234 - void *buffer,
235 -- int length,
236 -+ size_t length,
237 - int write
238 - )
239 - {
240 -diff -urp work.orig/kernel/nvidia/nv-modeset-interface.c work/kernel/nvidia/nv-modeset-interface.c
241 ---- work.orig/kernel/nvidia/nv-modeset-interface.c 2016-11-27 21:56:50.395629748 +0100
242 -+++ work/kernel/nvidia/nv-modeset-interface.c 2016-11-27 21:54:23.971706350 +0100
243 -@@ -100,10 +100,9 @@ static NvU32 nvidia_modeset_enumerate_gp
244 - return count;
245 - }
246 -
247 --NV_STATUS nvidia_get_rm_ops(nvidia_modeset_rm_ops_t *rm_ops)
248 -+NV_STATUS nvidia_get_rm_ops(const nvidia_modeset_rm_ops_t **rm_ops, const char **version_string)
249 - {
250 -- const nvidia_modeset_rm_ops_t local_rm_ops = {
251 -- .version_string = NV_VERSION_STRING,
252 -+ static const nvidia_modeset_rm_ops_t local_rm_ops = {
253 - .system_info = {
254 - .allow_write_combining = NV_FALSE,
255 - },
256 -@@ -116,17 +115,26 @@ NV_STATUS nvidia_get_rm_ops(nvidia_modes
257 - .set_callbacks = nvidia_modeset_set_callbacks,
258 - };
259 -
260 -- if (strcmp(rm_ops->version_string, NV_VERSION_STRING) != 0)
261 -+ static const nvidia_modeset_rm_ops_t local_rm_ops_wc = {
262 -+ .system_info = {
263 -+ .allow_write_combining = NV_TRUE,
264 -+ },
265 -+ .alloc_stack = nvidia_modeset_rm_ops_alloc_stack,
266 -+ .free_stack = nvidia_modeset_rm_ops_free_stack,
267 -+ .enumerate_gpus = nvidia_modeset_enumerate_gpus,
268 -+ .open_gpu = nvidia_dev_get,
269 -+ .close_gpu = nvidia_dev_put,
270 -+ .op = rm_kernel_rmapi_op, /* provided by nv-kernel.o */
271 -+ .set_callbacks = nvidia_modeset_set_callbacks,
272 -+ };
273 -+
274 -+ if (strcmp(*version_string, NV_VERSION_STRING) != 0)
275 - {
276 -- rm_ops->version_string = NV_VERSION_STRING;
277 -+ *version_string = NV_VERSION_STRING;
278 - return NV_ERR_GENERIC;
279 - }
280 -
281 -- *rm_ops = local_rm_ops;
282 --
283 -- if (NV_ALLOW_WRITE_COMBINING(NV_MEMORY_TYPE_FRAMEBUFFER)) {
284 -- rm_ops->system_info.allow_write_combining = NV_TRUE;
285 -- }
286 -+ *rm_ops = NV_ALLOW_WRITE_COMBINING(NV_MEMORY_TYPE_FRAMEBUFFER) ? &local_rm_ops_wc : &local_rm_ops;
287 -
288 - return NV_OK;
289 - }
290 -diff -urp work.orig/kernel/nvidia-drm/nvidia-drm-drv.c work/kernel/nvidia-drm/nvidia-drm-drv.c
291 ---- work.orig/kernel/nvidia-drm/nvidia-drm-drv.c 2016-11-27 21:56:50.395629748 +0100
292 -+++ work/kernel/nvidia-drm/nvidia-drm-drv.c 2016-11-27 21:54:23.971706350 +0100
293 -@@ -594,7 +594,7 @@ static const struct drm_ioctl_desc nv_dr
294 - DRM_CONTROL_ALLOW|DRM_RENDER_ALLOW|DRM_UNLOCKED),
295 - };
296 -
297 --static struct drm_driver nv_drm_driver = {
298 -+static drm_driver_no_const nv_drm_driver __read_only = {
299 -
300 - .driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER,
301 -
302 -@@ -654,6 +654,7 @@ static void nvidia_update_drm_driver_fea
303 - return;
304 - }
305 -
306 -+ pax_open_kernel();
307 - nv_drm_driver.driver_features |= DRIVER_MODESET | DRIVER_ATOMIC;
308 -
309 - nv_drm_driver.master_set = nvidia_drm_master_set;
310 -@@ -664,6 +665,7 @@ static void nvidia_update_drm_driver_fea
311 - nv_drm_driver.dumb_destroy = drm_gem_dumb_destroy;
312 -
313 - nv_drm_driver.gem_vm_ops = &nv_drm_gem_vma_ops;
314 -+ pax_close_kernel();
315 - #endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */
316 - }
317 -
318 -diff -urp work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c work/kernel/nvidia-modeset/nvidia-modeset-linux.c
319 ---- work.orig/kernel/nvidia-modeset/nvidia-modeset-linux.c 2016-11-27 21:56:50.395629748 +0100
320 -+++ work/kernel/nvidia-modeset/nvidia-modeset-linux.c 2016-11-27 21:54:23.971706350 +0100
321 -@@ -335,29 +335,28 @@ static void nvkms_resume(NvU32 gpuId)
322 - * Interface with resman.
323 - *************************************************************************/
324 -
325 --static nvidia_modeset_rm_ops_t __rm_ops = { 0 };
326 -+static const nvidia_modeset_rm_ops_t *__rm_ops;
327 - static nvidia_modeset_callbacks_t nvkms_rm_callbacks = {
328 -- nvkms_suspend,
329 -- nvkms_resume
330 -+ .suspend = nvkms_suspend,
331 -+ .resume = nvkms_resume
332 - };
333 -
334 - static int nvkms_alloc_rm(void)
335 - {
336 - NV_STATUS nvstatus;
337 - int ret;
338 -+ const char *version_string = NV_VERSION_STRING;
339 -
340 -- __rm_ops.version_string = NV_VERSION_STRING;
341 --
342 -- nvstatus = nvidia_get_rm_ops(&__rm_ops);
343 -+ nvstatus = nvidia_get_rm_ops(&__rm_ops, &version_string);
344 -
345 - if (nvstatus != NV_OK) {
346 - printk(KERN_ERR NVKMS_LOG_PREFIX "Version mismatch: "
347 - "nvidia.ko(%s) nvidia-modeset.ko(%s)\n",
348 -- __rm_ops.version_string, NV_VERSION_STRING);
349 -+ version_string, NV_VERSION_STRING);
350 - return -EINVAL;
351 - }
352 -
353 -- ret = __rm_ops.set_callbacks(&nvkms_rm_callbacks);
354 -+ ret = __rm_ops->set_callbacks(&nvkms_rm_callbacks);
355 - if (ret < 0) {
356 - printk(KERN_ERR NVKMS_LOG_PREFIX "Failed to register callbacks\n");
357 - return ret;
358 -@@ -368,20 +367,20 @@ static int nvkms_alloc_rm(void)
359 -
360 - static void nvkms_free_rm(void)
361 - {
362 -- __rm_ops.set_callbacks(NULL);
363 -+ __rm_ops->set_callbacks(NULL);
364 - }
365 -
366 - void NVKMS_API_CALL nvkms_call_rm(void *ops)
367 - {
368 - nvidia_modeset_stack_ptr stack = NULL;
369 -
370 -- if (__rm_ops.alloc_stack(&stack) != 0) {
371 -+ if (__rm_ops->alloc_stack(&stack) != 0) {
372 - return;
373 - }
374 -
375 -- __rm_ops.op(stack, ops);
376 -+ __rm_ops->op(stack, ops);
377 -
378 -- __rm_ops.free_stack(stack);
379 -+ __rm_ops->free_stack(stack);
380 - }
381 -
382 - /*************************************************************************
383 -@@ -705,13 +704,13 @@ NvBool NVKMS_API_CALL nvkms_open_gpu(NvU
384 - nvidia_modeset_stack_ptr stack = NULL;
385 - NvBool ret;
386 -
387 -- if (__rm_ops.alloc_stack(&stack) != 0) {
388 -+ if (__rm_ops->alloc_stack(&stack) != 0) {
389 - return NV_FALSE;
390 - }
391 -
392 -- ret = __rm_ops.open_gpu(gpuId, stack) == 0;
393 -+ ret = __rm_ops->open_gpu(gpuId, stack) == 0;
394 -
395 -- __rm_ops.free_stack(stack);
396 -+ __rm_ops->free_stack(stack);
397 -
398 - return ret;
399 - }
400 -@@ -720,23 +719,23 @@ void NVKMS_API_CALL nvkms_close_gpu(NvU3
401 - {
402 - nvidia_modeset_stack_ptr stack = NULL;
403 -
404 -- if (__rm_ops.alloc_stack(&stack) != 0) {
405 -+ if (__rm_ops->alloc_stack(&stack) != 0) {
406 - return;
407 - }
408 -
409 -- __rm_ops.close_gpu(gpuId, stack);
410 -+ __rm_ops->close_gpu(gpuId, stack);
411 -
412 -- __rm_ops.free_stack(stack);
413 -+ __rm_ops->free_stack(stack);
414 - }
415 -
416 - NvU32 NVKMS_API_CALL nvkms_enumerate_gpus(nv_gpu_info_t *gpu_info)
417 - {
418 -- return __rm_ops.enumerate_gpus(gpu_info);
419 -+ return __rm_ops->enumerate_gpus(gpu_info);
420 - }
421 -
422 - NvBool NVKMS_API_CALL nvkms_allow_write_combining(void)
423 - {
424 -- return __rm_ops.system_info.allow_write_combining;
425 -+ return __rm_ops->system_info.allow_write_combining;
426 - }
427 -
428 - /*************************************************************************
429 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_global.c work/kernel/nvidia-uvm/uvm8_global.c
430 ---- work.orig/kernel/nvidia-uvm/uvm8_global.c 2016-11-27 21:56:50.399642330 +0100
431 -+++ work/kernel/nvidia-uvm/uvm8_global.c 2016-11-27 21:54:23.975709978 +0100
432 -@@ -35,17 +35,17 @@
433 - #include "nv_uvm_interface.h"
434 -
435 - uvm_global_t g_uvm_global;
436 --static struct UvmOpsUvmEvents g_exported_uvm8_ops;
437 -+static struct UvmOpsUvmEvents g_exported_uvm8_ops = {
438 -+ .startDevice = NULL,
439 -+ .stopDevice = NULL,
440 -+ .isrTopHalf = uvm8_isr_top_half,
441 -+};
442 - static bool g_ops_registered = false;
443 -
444 - static NV_STATUS uvm8_register_callbacks(void)
445 - {
446 - NV_STATUS status = NV_OK;
447 -
448 -- g_exported_uvm8_ops.startDevice = NULL;
449 -- g_exported_uvm8_ops.stopDevice = NULL;
450 -- g_exported_uvm8_ops.isrTopHalf = uvm8_isr_top_half;
451 --
452 - // Register the UVM callbacks with the main GPU driver:
453 - status = uvm_rm_locked_call(nvUvmInterfaceRegisterUvmCallbacks(&g_exported_uvm8_ops));
454 - if (status != NV_OK)
455 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c
456 ---- work.orig/kernel/nvidia-uvm/uvm8_gpu_semaphore.c 2016-11-27 21:56:50.399642330 +0100
457 -+++ work/kernel/nvidia-uvm/uvm8_gpu_semaphore.c 2016-11-27 21:54:23.975709978 +0100
458 -@@ -368,7 +368,7 @@ void uvm_gpu_semaphore_set_payload(uvm_g
459 - // being optimized out on non-SMP configs (we need them for interacting with
460 - // the GPU correctly even on non-SMP).
461 - mb();
462 -- ACCESS_ONCE(*semaphore->payload) = payload;
463 -+ ACCESS_ONCE_RW(*semaphore->payload) = payload;
464 - }
465 -
466 - // This function is intended to catch channels which have been left dangling in
467 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_hal.h work/kernel/nvidia-uvm/uvm8_hal.h
468 ---- work.orig/kernel/nvidia-uvm/uvm8_hal.h 2016-11-27 21:56:50.399642330 +0100
469 -+++ work/kernel/nvidia-uvm/uvm8_hal.h 2016-11-27 21:54:23.975709978 +0100
470 -@@ -316,7 +316,7 @@ typedef struct
471 - // fault_buffer_ops: id is a hardware class
472 - uvm_fault_buffer_hal_t fault_buffer_ops;
473 - } u;
474 --} uvm_hal_class_ops_t;
475 -+} __do_const uvm_hal_class_ops_t;
476 -
477 - // When UVM next support is enabled support for future chips in the hal is
478 - // enabled by providing additional hal table entries below.
479 -diff -urp work.orig/kernel/nvidia-uvm/uvm8_mmu.h work/kernel/nvidia-uvm/uvm8_mmu.h
480 ---- work.orig/kernel/nvidia-uvm/uvm8_mmu.h 2016-11-27 21:56:50.399642330 +0100
481 -+++ work/kernel/nvidia-uvm/uvm8_mmu.h 2016-11-27 21:54:23.975709978 +0100
482 -@@ -24,7 +24,6 @@
483 - #ifndef __UVM8_MMU_H__
484 - #define __UVM8_MMU_H__
485 -
486 --#include "uvm8_forward_decl.h"
487 - #include "uvm8_hal_types.h"
488 - #include "uvm8_pmm_gpu.h"
489 - #include "uvmtypes.h"
490 -diff -urp work.orig/kernel/nvidia-uvm/uvm_common.c work/kernel/nvidia-uvm/uvm_common.c
491 ---- work.orig/kernel/nvidia-uvm/uvm_common.c 2016-11-27 21:56:50.399642330 +0100
492 -+++ work/kernel/nvidia-uvm/uvm_common.c 2016-11-27 21:54:23.975709978 +0100
493 -@@ -42,7 +42,6 @@
494 - #define UVM_SPIN_LOOP_PRINT_TIMEOUT_SEC 30ULL
495 -
496 - static dev_t g_uvmBaseDev;
497 --struct UvmOpsUvmEvents g_exportedUvmOps;
498 -
499 - static char* uvm_driver_mode = "8";
500 -
501 -diff -urp work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h work/kernel/nvidia-uvm/uvm_full_fault_buffer.h
502 ---- work.orig/kernel/nvidia-uvm/uvm_full_fault_buffer.h 2016-11-27 21:56:50.399642330 +0100
503 -+++ work/kernel/nvidia-uvm/uvm_full_fault_buffer.h 2016-11-27 21:54:23.975709978 +0100
504 -@@ -31,6 +31,7 @@
505 - #define _UVM_FULL_FAULT_BUFFER_H_
506 -
507 - #include "uvmtypes.h"
508 -+#include "linux/compiler.h"
509 -
510 - #define MAXWELL_FAULT_BUFFER_A (0xb069)
511 - #define MEM_RD32(a) (*(const volatile NvU32 *)(a))
512 -@@ -303,7 +304,7 @@ typedef struct
513 - NvUvmControlPrefetch_t controlPrefetch;
514 - NvUvmTestFaultBufferOverflow_t testFaultBufferOverflow;
515 - NvUvmClearFaultBufferOverflow_t clearFaultBufferOverflow;
516 --} UvmFaultBufferOps;
517 -+} __no_const UvmFaultBufferOps;
518 -
519 - /******************************************************************************
520 - uvmfull_fault_buffer_init
521 -diff -urp work.orig/kernel/nvidia-uvm/uvm_linux.h work/kernel/nvidia-uvm/uvm_linux.h
522 ---- work.orig/kernel/nvidia-uvm/uvm_linux.h 2016-11-27 21:56:50.399642330 +0100
523 -+++ work/kernel/nvidia-uvm/uvm_linux.h 2016-11-27 21:54:23.975709978 +0100
524 -@@ -420,7 +420,7 @@ static inline NvU64 NV_GETTIME(void)
525 -
526 - // WRITE_ONCE/READ_ONCE have incompatible definitions across versions, which produces warnings.
527 - // Therefore, we define our own macros
528 --#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE(x) = (val))
529 -+#define UVM_WRITE_ONCE(x, val) (ACCESS_ONCE_RW(x) = (val))
530 - #define UVM_READ_ONCE(x) ACCESS_ONCE(x)
531 -
532 - // Added in 3.11
533
534 diff --git a/x11-drivers/nvidia-drivers/metadata.xml b/x11-drivers/nvidia-drivers/metadata.xml
535 index 9949b7e9525..acc86edc603 100644
536 --- a/x11-drivers/nvidia-drivers/metadata.xml
537 +++ b/x11-drivers/nvidia-drivers/metadata.xml
538 @@ -4,9 +4,6 @@
539 <maintainer type="person">
540 <email>jer@g.o</email>
541 </maintainer>
542 - <maintainer type="project">
543 - <email>hardened@g.o</email>
544 - </maintainer>
545 <longdescription>
546 Nvidia provides different branches of its drivers for different batches of its
547 hardware. When maintaining these ebuilds or other ebuilds depending on them,
548 @@ -19,7 +16,6 @@
549 <flag name="X">Install the X.org driver, OpenGL libraries, XvMC libraries, and VDPAU libraries</flag>
550 <flag name="gtk3">Install nvidia-settings with support for GTK+ 3</flag>
551 <flag name="kms">Enable support for kernel mode setting (KMS)</flag>
552 - <flag name="pax_kernel">PaX patches from the PaX project</flag>
553 <flag name="tools">Install additional tools such as nvidia-settings</flag>
554 <flag name="uvm">Install the Unified Memory kernel module (nvidia-uvm) for sharing memory between CPU and GPU in CUDA programs</flag>
555 </use>
556
557 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-340.107.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-340.107.ebuild
558 index 928ed785b26..e943e836d80 100644
559 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-340.107.ebuild
560 +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-340.107.ebuild
561 @@ -1,4 +1,4 @@
562 -# Copyright 1999-2018 Gentoo Authors
563 +# Copyright 1999-2019 Gentoo Authors
564 # Distributed under the terms of the GNU General Public License v2
565
566 EAPI=6
567 @@ -26,7 +26,7 @@ SRC_URI="
568 LICENSE="GPL-2 NVIDIA-r2"
569 SLOT="0/${PV%.*}"
570 KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
571 -IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel static-libs +tools +X"
572 +IUSE="acpi multilib kernel_FreeBSD kernel_linux static-libs +tools +X"
573 RESTRICT="bindist mirror"
574 EMULTILIB_PKG="true"
575
576 @@ -172,14 +172,6 @@ src_prepare() {
577 # convert_to_m "${NV_SRC}"/Makefile.kbuild
578 fi
579
580 - if use pax_kernel; then
581 - ewarn "Using PAX patches is not supported. You will be asked to"
582 - ewarn "use a standard kernel should you have issues. Should you"
583 - ewarn "need support with these patches, contact the PaX team."
584 - eapply "${FILESDIR}"/${PN}-331.13-pax-usercopy.patch
585 - eapply "${FILESDIR}"/${PN}-337.12-pax-constify.patch
586 - fi
587 -
588 local man_file
589 for man_file in "${NV_MAN}"/*1.gz; do
590 gunzip $man_file || die
591
592 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.87.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.87.ebuild
593 index 90b232bbe06..061933e4ec4 100644
594 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.87.ebuild
595 +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.87.ebuild
596 @@ -1,4 +1,4 @@
597 -# Copyright 1999-2018 Gentoo Authors
598 +# Copyright 1999-2019 Gentoo Authors
599 # Distributed under the terms of the GNU General Public License v2
600
601 EAPI=6
602 @@ -32,7 +32,7 @@ KEYWORDS="-* amd64 x86 ~amd64-fbsd ~x86-fbsd"
603 RESTRICT="bindist mirror"
604 EMULTILIB_PKG="true"
605
606 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
607 +IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib static-libs +tools uvm wayland +X"
608 REQUIRED_USE="
609 tools? ( X )
610 static-libs? ( tools )
611 @@ -177,13 +177,6 @@ pkg_setup() {
612 }
613
614 src_prepare() {
615 - if use pax_kernel; then
616 - ewarn "Using PAX patches is not supported. You will be asked to"
617 - ewarn "use a standard kernel should you have issues. Should you"
618 - ewarn "need support with these patches, contact the PaX team."
619 - eapply "${FILESDIR}"/${PN}-375.20-pax.patch
620 - fi
621 -
622 local man_file
623 for man_file in "${NV_MAN}"/*1.gz; do
624 gunzip $man_file || die
625
626 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-410.93.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-410.93.ebuild
627 index b496478afc9..ef8a7466e6c 100644
628 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-410.93.ebuild
629 +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-410.93.ebuild
630 @@ -27,7 +27,7 @@ KEYWORDS="-* amd64 ~amd64-fbsd"
631 RESTRICT="bindist mirror"
632 EMULTILIB_PKG="true"
633
634 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
635 +IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib static-libs +tools uvm wayland +X"
636 REQUIRED_USE="
637 tools? ( X )
638 static-libs? ( tools )
639 @@ -170,13 +170,6 @@ pkg_setup() {
640 }
641
642 src_prepare() {
643 - if use pax_kernel; then
644 - ewarn "Using PAX patches is not supported. You will be asked to"
645 - ewarn "use a standard kernel should you have issues. Should you"
646 - ewarn "need support with these patches, contact the PaX team."
647 - eapply "${FILESDIR}"/${PN}-375.20-pax.patch
648 - fi
649 -
650 local man_file
651 for man_file in "${NV_MAN}"/*1.gz; do
652 gunzip $man_file || die
653
654 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-415.25.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-415.25.ebuild
655 index b4dd340c748..102faff968e 100644
656 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-415.25.ebuild
657 +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-415.25.ebuild
658 @@ -27,7 +27,7 @@ KEYWORDS="-* amd64 ~amd64-fbsd"
659 RESTRICT="bindist mirror"
660 EMULTILIB_PKG="true"
661
662 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
663 +IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib static-libs +tools uvm wayland +X"
664 REQUIRED_USE="
665 tools? ( X )
666 static-libs? ( tools )
667 @@ -170,13 +170,6 @@ pkg_setup() {
668 }
669
670 src_prepare() {
671 - if use pax_kernel; then
672 - ewarn "Using PAX patches is not supported. You will be asked to"
673 - ewarn "use a standard kernel should you have issues. Should you"
674 - ewarn "need support with these patches, contact the PaX team."
675 - eapply "${FILESDIR}"/${PN}-375.20-pax.patch
676 - fi
677 -
678 local man_file
679 for man_file in "${NV_MAN}"/*1.gz; do
680 gunzip $man_file || die
681
682 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-415.27.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-415.27.ebuild
683 index 93bdc175c38..d7395d2b6c6 100644
684 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-415.27.ebuild
685 +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-415.27.ebuild
686 @@ -27,7 +27,7 @@ KEYWORDS="-* ~amd64 ~amd64-fbsd"
687 RESTRICT="bindist mirror"
688 EMULTILIB_PKG="true"
689
690 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
691 +IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib static-libs +tools uvm wayland +X"
692 REQUIRED_USE="
693 tools? ( X )
694 static-libs? ( tools )
695 @@ -170,13 +170,6 @@ pkg_setup() {
696 }
697
698 src_prepare() {
699 - if use pax_kernel; then
700 - ewarn "Using PAX patches is not supported. You will be asked to"
701 - ewarn "use a standard kernel should you have issues. Should you"
702 - ewarn "need support with these patches, contact the PaX team."
703 - eapply "${FILESDIR}"/${PN}-375.20-pax.patch
704 - fi
705 -
706 local man_file
707 for man_file in "${NV_MAN}"/*1.gz; do
708 gunzip $man_file || die