[NTOS:IO] Fix affinity of PsInitialSystemProcess

Add a hack to work around SMP-incompatible drivers
This commit is contained in:
Timo Kreuzer 2024-03-06 19:08:13 +02:00
parent baa82a4d4f
commit e9ef091f0e
2 changed files with 7 additions and 0 deletions

View file

@ -1561,6 +1561,9 @@ Phase1InitializationDiscard(IN PVOID Context)
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
/* Start Application Processors */ /* Start Application Processors */
KeStartAllProcessors(); KeStartAllProcessors();
/* Set new affinity for system process */
KeSetAffinityProcess(&PsInitialSystemProcess->Pcb, KeActiveProcessors);
#endif #endif
/* Initialize all processors */ /* Initialize all processors */

View file

@ -554,9 +554,13 @@ IoInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
/* Make loader block available for the whole kernel */ /* Make loader block available for the whole kernel */
IopLoaderBlock = LoaderBlock; IopLoaderBlock = LoaderBlock;
KeSetAffinityProcess(&PsInitialSystemProcess->Pcb, 1);
/* Load boot start drivers */ /* Load boot start drivers */
IopInitializeBootDrivers(); IopInitializeBootDrivers();
KeSetAffinityProcess(&PsInitialSystemProcess->Pcb, KeActiveProcessors);
/* Call back drivers that asked for */ /* Call back drivers that asked for */
IopReinitializeBootDrivers(); IopReinitializeBootDrivers();