Kenrel: Allow Processor::send_smp_message to send event to current CPU
This commit is contained in:
parent
b7948551ff
commit
c5b0d0235f
|
@ -275,7 +275,6 @@ namespace Kernel
|
||||||
|
|
||||||
void Processor::send_smp_message(ProcessorID processor_id, const SMPMessage& message, bool send_ipi)
|
void Processor::send_smp_message(ProcessorID processor_id, const SMPMessage& message, bool send_ipi)
|
||||||
{
|
{
|
||||||
ASSERT(processor_id != current_id());
|
|
||||||
|
|
||||||
auto state = get_interrupt_state();
|
auto state = get_interrupt_state();
|
||||||
set_interrupt_state(InterruptState::Disabled);
|
set_interrupt_state(InterruptState::Disabled);
|
||||||
|
@ -307,7 +306,12 @@ namespace Kernel
|
||||||
);
|
);
|
||||||
|
|
||||||
if (send_ipi)
|
if (send_ipi)
|
||||||
|
{
|
||||||
|
if (processor_id == current_id())
|
||||||
|
handle_smp_messages();
|
||||||
|
else
|
||||||
InterruptController::get().send_ipi(processor_id);
|
InterruptController::get().send_ipi(processor_id);
|
||||||
|
}
|
||||||
|
|
||||||
set_interrupt_state(state);
|
set_interrupt_state(state);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue