https://git.reactos.org/?p=reactos.git;a=commitdiff;h=10bb50b45673f5e7d9318…
commit 10bb50b45673f5e7d9318cf40eda4cef5b9f2fbf
Author: Timo Kreuzer <timo.kreuzer(a)reactos.org>
AuthorDate: Thu Nov 23 22:20:51 2023 +0200
Commit: Timo Kreuzer <timo.kreuzer(a)reactos.org>
CommitDate: Sat Dec 30 12:53:18 2023 +0200
[HAL] Fix SMP initialization
- Don't use CONFIG_SMP, this isn't handled in (most of) hal
- Add a dummy HalpSetupProcessorsTable for UP
- Call HalpRegisterKdSupportFunctions only for processor 0
---
hal/halx86/apic/halinit.c | 4 ----
hal/halx86/generic/halinit.c | 7 +++++--
hal/halx86/generic/up.c | 7 +++++++
3 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/hal/halx86/apic/halinit.c b/hal/halx86/apic/halinit.c
index 907f0cfd28f..7658f3d5074 100644
--- a/hal/halx86/apic/halinit.c
+++ b/hal/halx86/apic/halinit.c
@@ -25,16 +25,12 @@ HalpInitProcessor(
IN ULONG ProcessorNumber,
IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
-#ifdef CONFIG_SMP
if (ProcessorNumber == 0)
{
-#endif
HalpParseApicTables(LoaderBlock);
-#ifdef CONFIG_SMP
}
HalpSetupProcessorsTable(ProcessorNumber);
-#endif
/* Initialize the local APIC for this cpu */
ApicInitializeLocalApic(ProcessorNumber);
diff --git a/hal/halx86/generic/halinit.c b/hal/halx86/generic/halinit.c
index 70822fd5cc5..be32ed7644d 100644
--- a/hal/halx86/generic/halinit.c
+++ b/hal/halx86/generic/halinit.c
@@ -57,8 +57,11 @@ HalInitializeProcessor(
InterlockedBitTestAndSetAffinity(&HalpActiveProcessors, ProcessorNumber);
InterlockedBitTestAndSetAffinity(&HalpDefaultInterruptAffinity,
ProcessorNumber);
- /* Register routines for KDCOM */
- HalpRegisterKdSupportFunctions();
+ if (ProcessorNumber == 0)
+ {
+ /* Register routines for KDCOM */
+ HalpRegisterKdSupportFunctions();
+ }
}
/*
diff --git a/hal/halx86/generic/up.c b/hal/halx86/generic/up.c
index 377c7e1aaf5..9e42e6f786b 100644
--- a/hal/halx86/generic/up.c
+++ b/hal/halx86/generic/up.c
@@ -33,6 +33,13 @@ HalStartNextProcessor(
return FALSE;
}
+VOID
+HalpSetupProcessorsTable(
+ _In_ UINT32 NTProcessorNumber)
+{
+ NOTHING;
+}
+
#ifdef _M_AMD64
VOID