summaryrefslogtreecommitdiffstats
path: root/nvidia-drd/nvidia_3.13_kernel.patch
blob: c9dc7dd9ddf145524f3ae6f7dc6f88b1dd434d06 (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
36
37
38
39
40
41
42
43
44
45
46
--- a/kernel/nv-acpi.c
+++ b/kernel/nv-acpi.c
@@ -15,6 +15,10 @@
 #include "nv-linux.h"
 #include "nv-reg.h"
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0) && defined(ACPI_HANDLE)
+#define DEVICE_ACPI_HANDLE(a) ACPI_HANDLE(a)
+#endif
+
 #if defined(NV_LINUX_ACPI_EVENTS_SUPPORTED)
 static RM_STATUS   nv_acpi_extract_integer (const union acpi_object *, void *, NvU32, NvU32 *);
 static RM_STATUS   nv_acpi_extract_buffer  (const union acpi_object *, void *, NvU32, NvU32 *);
@@ -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))