From 2ac48fd52d846a8c3949373aa0d776c6cb5452db Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Mon, 17 Jun 2019 17:38:35 +0200 Subject: [PATCH] x86/x2APIC: tighten check in cluster mode IPI sending It is only of limited use to check the full accumulated 32-bit value, because the high halves are the cluster ID. What needs to be non-zero is the bit map at the bottom, or else APIC errors will result. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper --- xen/arch/x86/genapic/x2apic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/x86/genapic/x2apic.c b/xen/arch/x86/genapic/x2apic.c index 334dae527e..74907e6002 100644 --- a/xen/arch/x86/genapic/x2apic.c +++ b/xen/arch/x86/genapic/x2apic.c @@ -154,7 +154,7 @@ static void send_IPI_mask_x2apic_cluster(const cpumask_t *cpumask, int vector) msr_content |= per_cpu(cpu_2_logical_apicid, cpu); } - BUG_ON(!msr_content); + BUG_ON(!(msr_content & 0xffff)); msr_content = (msr_content << 32) | APIC_DM_FIXED | APIC_DEST_LOGICAL | vector; apic_wrmsr(APIC_ICR, msr_content); -- 2.30.2