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 |