From 230f7c7f3c34a91c921bd0db826d01631c55bf03 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Thu, 30 Nov 2023 14:08:12 +0200 Subject: [PATCH] [HALX86] Some improvements / bugfixes for IPI support functions --- hal/halx86/apic/apicsmp.c | 6 +++--- hal/halx86/generic/up.c | 2 ++ hal/halx86/smp/ipi.c | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/hal/halx86/apic/apicsmp.c b/hal/halx86/apic/apicsmp.c index 47415bc84b6..5165a367156 100644 --- a/hal/halx86/apic/apicsmp.c +++ b/hal/halx86/apic/apicsmp.c @@ -51,7 +51,7 @@ extern PPROCESSOR_IDENTITY HalpProcessorIdentity; APIC_DSH_Destination APIC_DSH_Self APIC_DSH_AllIncludingSelf - APIC_DSH_AllExclusingSelf + APIC_DSH_AllExcludingSelf \see "AMD64 Architecture Programmer's Manual Volume 2 System Programming" Chapter 16 "Advanced Programmable Interrupt Controller (APIC)" @@ -170,7 +170,7 @@ HalRequestIpiSpecifyVector( _In_ KAFFINITY TargetSet, _In_ UCHAR Vector) { - KAFFINITY ActiveProcessors = KeQueryActiveProcessors(); + KAFFINITY ActiveProcessors = HalpActiveProcessors; KAFFINITY RemainingSet, SetMember; ULONG ProcessorIndex; ULONG LApicId; @@ -277,7 +277,7 @@ HalpSendNMI( ULONG LApicId; /* Make sure we do not send an NMI to ourselves */ - ASSERT((TargetSet & ~KeGetCurrentPrcb()->SetMember) == 0); + ASSERT((TargetSet & KeGetCurrentPrcb()->SetMember) == 0); /* Loop while we have more processors */ RemainingSet = TargetSet; diff --git a/hal/halx86/generic/up.c b/hal/halx86/generic/up.c index dd60cc1cffb..377c7e1aaf5 100644 --- a/hal/halx86/generic/up.c +++ b/hal/halx86/generic/up.c @@ -40,6 +40,7 @@ NTAPI HalSendNMI( _In_ KAFFINITY TargetSet) { + NOTHING; } VOID @@ -48,6 +49,7 @@ HalSendSoftwareInterrupt( _In_ KAFFINITY TargetSet, _In_ KIRQL Irql) { + NOTHING; } #endif // _M_AMD64 diff --git a/hal/halx86/smp/ipi.c b/hal/halx86/smp/ipi.c index a2411961dae..48747026cc9 100644 --- a/hal/halx86/smp/ipi.c +++ b/hal/halx86/smp/ipi.c @@ -35,7 +35,7 @@ HalSendNMI( // See: // - https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Runtime/r0drv/nt/internal-r0drv-nt.h#L53 -// https://github.com/mirror/vbox/blob/b9657cd5351cf17432b664009cc25bb480dc64c1/src/VBox/Runtime/r0drv/nt/mp-r0drv-nt.cpp#L683 +// - https://github.com/mirror/vbox/blob/b9657cd5351cf17432b664009cc25bb480dc64c1/src/VBox/Runtime/r0drv/nt/mp-r0drv-nt.cpp#L683 VOID NTAPI HalSendSoftwareInterrupt(