Index: /trunk/src/VBox/Runtime/r0drv/solaris/timer-r0drv-solaris.c
===================================================================
--- /trunk/src/VBox/Runtime/r0drv/solaris/timer-r0drv-solaris.c	(revision 54183)
+++ /trunk/src/VBox/Runtime/r0drv/solaris/timer-r0drv-solaris.c	(revision 54184)
@@ -46,5 +46,4 @@
 #include "internal/magics.h"
 
-#define SOL_TIMER_ANY_CPU       (-1)
 
 /*******************************************************************************
@@ -69,5 +68,5 @@
     uint8_t                 fSpecificCpu;
     /** The CPU it must run on if fSpecificCpu is set. */
-    uint8_t                 iCpu;
+    uint32_t                iCpu;
     /** The nano second interval for repeating timers. */
     uint64_t                cNsInterval;
@@ -323,5 +322,5 @@
         pTimer->fAllCpus = true;
         pTimer->fSpecificCpu = false;
-        pTimer->iCpu = 255;
+        pTimer->iCpu = UINT32_MAX;
     }
     else if (fFlags & RTTIMER_FLAGS_CPU_SPECIFIC)
@@ -335,5 +334,5 @@
         pTimer->fAllCpus = false;
         pTimer->fSpecificCpu = false;
-        pTimer->iCpu = 255;
+        pTimer->iCpu = UINT32_MAX;
     }
     pTimer->cNsInterval = u64NanoInterval;
@@ -393,11 +392,6 @@
     else
     {
-        int iCpu = SOL_TIMER_ANY_CPU;
-        if (pTimer->fSpecificCpu)
-        {
-            iCpu = pTimer->iCpu;
-            if (!RTMpIsCpuOnline(iCpu))    /* ASSUMES: index == cpuid */
-                return VERR_CPU_OFFLINE;
-        }
+        if (pTimer->fSpecificCpu && !RTMpIsCpuOnline(pTimer->iCpu)) /* ASSUMES: index == cpuid */
+            return VERR_CPU_OFFLINE;
 
         pTimer->u.Single.hHandler.cyh_func  = (cyc_func_t)rtTimerSolSingleCallbackWrapper;
@@ -406,6 +400,6 @@
 
         mutex_enter(&cpu_lock);
-        if (RT_UNLIKELY(   iCpu != SOL_TIMER_ANY_CPU
-                        && !cpu_is_online(cpu[iCpu])))
+        if (RT_UNLIKELY(   pTimer->fSpecificCpu
+                        && !cpu_is_online(cpu[pTimer->iCpu])))
         {
             mutex_exit(&cpu_lock);
@@ -427,6 +421,6 @@
 
         pTimer->hCyclicId = cyclic_add(&pTimer->u.Single.hHandler, &pTimer->u.Single.hFireTime);
-        if (iCpu != SOL_TIMER_ANY_CPU)
-            cyclic_bind(pTimer->hCyclicId, cpu[iCpu], NULL /* cpupart */);
+        if (pTimer->fSpecificCpu)
+            cyclic_bind(pTimer->hCyclicId, cpu[pTimer->iCpu], NULL /* cpupart */);
 
         mutex_exit(&cpu_lock);
