]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
x86/hyperv: Fix APIC ID and VP index confusion in hv_snp_boot_ap()
authorRoman Kisel <romank@linux.microsoft.com>
Wed, 7 May 2025 18:22:25 +0000 (11:22 -0700)
committerWei Liu <wei.liu@kernel.org>
Fri, 23 May 2025 16:30:56 +0000 (16:30 +0000)
commit86c48271e0d60c82665e9fd61277002391efcef7
tree75233cff9b17d8515054c1a70c12b2fd9f3d839f
parentd684f9b28809b783e8473727fdf14595b36d8fd3
x86/hyperv: Fix APIC ID and VP index confusion in hv_snp_boot_ap()

To start an application processor in SNP-isolated guest, a hypercall
is used that takes a virtual processor index. The hv_snp_boot_ap()
function uses that START_VP hypercall but passes as VP index to it
what it receives as a wakeup_secondary_cpu_64 callback: the APIC ID.

As those two aren't generally interchangeable, that may lead to hung
APs if the VP index and the APIC ID don't match up.

Update the parameter names to avoid confusion as to what the parameter
is. Use the APIC ID to the VP index conversion to provide the correct
input to the hypercall.

Cc: stable@vger.kernel.org
Fixes: 44676bb9d566 ("x86/hyperv: Add smp support for SEV-SNP guest")
Signed-off-by: Roman Kisel <romank@linux.microsoft.com>
Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Link: https://lore.kernel.org/r/20250507182227.7421-2-romank@linux.microsoft.com
Signed-off-by: Wei Liu <wei.liu@kernel.org>
Message-ID: <20250507182227.7421-2-romank@linux.microsoft.com>
arch/x86/hyperv/hv_init.c
arch/x86/hyperv/hv_vtl.c
arch/x86/hyperv/ivm.c
arch/x86/include/asm/mshyperv.h
include/hyperv/hvgdk_mini.h