Index: /trunk/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c	(revision 15991)
+++ /trunk/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c	(revision 15992)
@@ -299,7 +299,6 @@
 #ifdef CONFIG_X86_LOCAL_APIC
 # ifdef DO_DISABLE_NMI
-
 /** Stop AMD NMI watchdog (x86_64 only). */
-static int stop_k7_watchdog(void)
+static int StopK7Watchdog(void)
 {
     wrmsr(MSR_K7_EVNTSEL0, 0, 0);
@@ -308,5 +307,5 @@
 
 /** Stop Intel P4 NMI watchdog (x86_64 only). */
-static int stop_p4_watchdog(void)
+static int StopP4Watchdog(void)
 {
     wrmsr(MSR_P4_IQ_CCCR0,  0, 0);
@@ -317,5 +316,5 @@
 
 /** The new method of detecting the event counter */
-static int stop_intel_arch_watchdog(void)
+static int StopIntelArchWatchdog(void)
 {
     unsigned ebx;
@@ -328,5 +327,5 @@
 
 /** Stop NMI watchdog. */
-static void vbox_stop_apic_nmi_watchdog(void *unused)
+static void VBoxStopApicNmiWatchdog(void *unused)
 {
     int stopped = 0;
@@ -344,13 +343,13 @@
             if (strstr(boot_cpu_data.x86_model_id, "Screwdriver"))
                return;
-            stopped = stop_k7_watchdog();
+            stopped = StopK7Watchdog();
             break;
         case X86_VENDOR_INTEL:
             if (cpu_has(&boot_cpu_data, X86_FEATURE_ARCH_PERFMON))
             {
-                stopped = stop_intel_arch_watchdog();
+                stopped = StopIntelArchWatchdog();
                 break;
             }
-            stopped = stop_p4_watchdog();
+            stopped = StopP4Watchdog();
             break;
         default:
@@ -364,5 +363,5 @@
 
 /** Disable LAPIC NMI watchdog. */
-static void disable_lapic_nmi_watchdog(void)
+static void DisableLapicNmiWatchdog(void)
 {
     BUG_ON(nmi_watchdog != NMI_LOCAL_APIC);
@@ -371,5 +370,5 @@
         return;
 
-    on_each_cpu(vbox_stop_apic_nmi_watchdog, NULL, 1, 1);
+    on_each_cpu(VBoxStopApicNmiWatchdog, NULL, 1, 1);
 
     BUG_ON(nmi_atomic_read(&nmi_active) != 0);
@@ -380,5 +379,5 @@
 
 /** Shutdown NMI. */
-static void nmi_cpu_shutdown(void * dummy)
+static void vboxdrvNmiCpuShutdown(void * dummy)
 {
     unsigned int vERR, vPC;
@@ -395,11 +394,38 @@
 }
 
-static void nmi_shutdown(void)
-{
-    on_each_cpu(nmi_cpu_shutdown, NULL, 0, 1);
+static void vboxdrvNmiShutdown(void)
+{
+    on_each_cpu(vboxdrvNmiCpuShutdown, NULL, 0, 1);
 }
 # endif /* DO_DISABLE_NMI */
 #endif /* CONFIG_X86_LOCAL_APIC */
 
+
+DECLINLINE(RTUID) vboxdrvLinuxUid(void)
+{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+    return current->cred->uid;
+#else
+    return current->uid;
+#endif
+}
+
+DECLINLINE(RTGID) vboxdrvLinuxGid(void)
+{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+    return current->cred->gid;
+#else
+    return current->gid;
+#endif
+}
+
+DECLINLINE(RTUID) vboxdrvLinuxEuid(void)
+{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+    return current->cred->euid;
+#else
+    return current->euid;
+#endif
+}
 
 /**
@@ -436,5 +462,5 @@
         {
             case NMI_LOCAL_APIC:
-                disable_lapic_nmi_watchdog();
+                DisableLapicNmiWatchdog();
                 break;
             case NMI_NONE:
@@ -445,5 +471,5 @@
         if (nmi_atomic_read(&nmi_active) == 0)
         {
-            nmi_shutdown();
+            vboxdrvNmiShutdown();
             printk(KERN_DEBUG DEVICE_NAME ": Successfully done.\n");
         }
@@ -704,7 +730,7 @@
      * Only root is allowed to access the device, enforce it!
      */
-    if (current->euid != 0 /* root */ )
-    {
-        Log(("VBoxDrvLinuxCreate: euid=%d, expected 0 (root)\n", current->euid));
+    if (vboxdrvLinuxEuid != 0 /* root */ )
+    {
+        Log(("VBoxDrvLinuxCreate: euid=%d, expected 0 (root)\n", vboxdrvLinuxEuid));
         return -EPERM;
     }
@@ -717,6 +743,6 @@
     if (!rc)
     {
-        pSession->Uid = current->uid;
-        pSession->Gid = current->gid;
+        pSession->Uid = vboxdrvLinuxUid();
+        pSession->Gid = vboxdrvLinuxGid();
     }
 
@@ -963,5 +989,5 @@
  * Initializes any OS specific object creator fields.
  */
-void VBOXCALL   supdrvOSObjInitCreator(PSUPDRVOBJ pObj, PSUPDRVSESSION pSession)
+void VBOXCALL supdrvOSObjInitCreator(PSUPDRVOBJ pObj, PSUPDRVSESSION pSession)
 {
     NOREF(pObj);
@@ -981,5 +1007,5 @@
  * @param   prc         Where to store the result when returning true.
  */
-bool VBOXCALL   supdrvOSObjCanAccess(PSUPDRVOBJ pObj, PSUPDRVSESSION pSession, const char *pszObjName, int *prc)
+bool VBOXCALL supdrvOSObjCanAccess(PSUPDRVOBJ pObj, PSUPDRVSESSION pSession, const char *pszObjName, int *prc)
 {
     NOREF(pObj);
@@ -991,5 +1017,5 @@
 
 
-bool VBOXCALL  supdrvOSGetForcedAsyncTscMode(PSUPDRVDEVEXT pDevExt)
+bool VBOXCALL supdrvOSGetForcedAsyncTscMode(PSUPDRVDEVEXT pDevExt)
 {
     return force_async_tsc != 0;
@@ -1003,5 +1029,5 @@
  * @param   rc  supdrv error code (SUPDRV_ERR_* defines).
  */
-static int     VBoxDrvLinuxErr2LinuxErr(int rc)
+static int VBoxDrvLinuxErr2LinuxErr(int rc)
 {
     switch (rc)
