diff --git a/kernel/include/kernel/Processor.h b/kernel/include/kernel/Processor.h index bda1fc1d..45a4a2aa 100644 --- a/kernel/include/kernel/Processor.h +++ b/kernel/include/kernel/Processor.h @@ -158,7 +158,7 @@ namespace Kernel static BAN::Atomic s_is_smp_enabled; static BAN::Atomic s_should_print_cpu_load; - ProcessorID m_id { PROCESSOR_NONE }; + ProcessorID m_id { 0 }; static constexpr size_t s_stack_size { 4096 }; void* m_stack { nullptr }; diff --git a/kernel/kernel/Processor.cpp b/kernel/kernel/Processor.cpp index 5f181de3..037c570c 100644 --- a/kernel/kernel/Processor.cpp +++ b/kernel/kernel/Processor.cpp @@ -47,6 +47,10 @@ namespace Kernel if (s_bsp_id == PROCESSOR_NONE || id == PROCESSOR_NONE || id.m_id >= s_processors.size()) Kernel::panic("Trying to initialize invalid processor {}", id.m_id); + if (id == s_bsp_id) + for (auto& processor : s_processors) + processor.m_id = PROCESSOR_NONE; + auto& processor = s_processors[id.m_id]; ASSERT(processor.m_id == PROCESSOR_NONE);