summaryrefslogtreecommitdiff
path: root/x11-drivers/nvidia-drivers/files/nvidia-drivers-3.13.patch
diff options
context:
space:
mode:
Diffstat (limited to 'x11-drivers/nvidia-drivers/files/nvidia-drivers-3.13.patch')
-rw-r--r--x11-drivers/nvidia-drivers/files/nvidia-drivers-3.13.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-3.13.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-3.13.patch
new file mode 100644
index 00000000..69c1ef85
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-3.13.patch
@@ -0,0 +1,35 @@
+--- a/kernel/nv-acpi.c
++++ b/kernel/nv-acpi.c
+@@ -303,7 +307,10 @@ static int nv_acpi_remove(struct acpi_de
+
+ if (pNvAcpiObject->notify_handler_installed)
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
++ /* beginning with 3.13, acpi_remove_notify_handler() waits for events to finish */
+ NV_ACPI_OS_WAIT_EVENTS_COMPLETE();
++#endif
+
+ // remove event notifier
+ status = acpi_remove_notify_handler(device->handle, ACPI_DEVICE_NOTIFY, nv_acpi_event);
+--- a/kernel/uvm/nvidia_uvm_linux.h
++++ b/kernel/uvm/nvidia_uvm_linux.h
+@@ -405,11 +405,17 @@ typedef void irqreturn_t;
+ // not require the RCU's read lock on current->cred.
+ //
+ //
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)
++#define NV_KUID_TO_UID(value) (__kuid_val(value))
++#else
++#define NV_KUID_TO_UID(value) (value)
++#endif
++
+ #if defined(NV_TASK_STRUCT_HAS_CRED)
+ #define NV_CURRENT_EUID() \
+- (((typeof(*current->cred) __force __kernel *)current->cred)->euid)
++ NV_KUID_TO_UID(((typeof(*current->cred) __force __kernel *)current->cred)->euid)
+ #else
+-#define NV_CURRENT_EUID() (current->euid)
++#define NV_CURRENT_EUID() NV_KUID_TO_UID(current->euid)
+ #endif
+
+ #define NV_ATOMIC_SET(data,val) atomic_set(&(data), (val))