Allow the system process and a process without a parent process to use all cpus on a smp machine, even if only the boot cpu is running.
Modified: trunk/reactos/ntoskrnl/ps/process.c
Modified: trunk/reactos/ntoskrnl/ps/psmgr.c

Modified: trunk/reactos/ntoskrnl/ps/process.c
--- trunk/reactos/ntoskrnl/ps/process.c	2005-09-24 19:30:12 UTC (rev 18034)
+++ trunk/reactos/ntoskrnl/ps/process.c	2005-09-24 19:34:54 UTC (rev 18035)
@@ -220,7 +220,14 @@
     else
     {
         pParentProcess = NULL;
+#ifdef CONFIG_SMP        
+   /* FIXME:
+    *   Only the boot cpu is initialized in the early boot phase. 
+    */
+        Affinity = 0xffffffff;
+#else
         Affinity = KeActiveProcessors;
+#endif
     }
 
     /* Add the debug port */

Modified: trunk/reactos/ntoskrnl/ps/psmgr.c
--- trunk/reactos/ntoskrnl/ps/psmgr.c	2005-09-24 19:30:12 UTC (rev 18034)
+++ trunk/reactos/ntoskrnl/ps/psmgr.c	2005-09-24 19:34:54 UTC (rev 18035)
@@ -220,7 +220,15 @@
 
    /* System threads may run on any processor. */
    RtlZeroMemory(PsInitialSystemProcess, sizeof(EPROCESS));
+#ifdef CONFIG_SMP   
+   /* FIXME:
+    *   Only the boot cpu is initialized. Threads of the 
+    *   system process should be able to run on all cpus.
+    */
+   PsInitialSystemProcess->Pcb.Affinity = 0xffffffff;
+#else
    PsInitialSystemProcess->Pcb.Affinity = KeActiveProcessors;
+#endif   
    PsInitialSystemProcess->Pcb.IopmOffset = 0xffff;
    PsInitialSystemProcess->Pcb.BasePriority = PROCESS_PRIORITY_NORMAL;
    PsInitialSystemProcess->Pcb.QuantumReset = 6;