From: Paolo Bonzini Date: Wed, 26 Feb 2025 18:23:29 +0000 (-0500) Subject: Merge branch 'kvm-nvmx-and-vm-teardown' into HEAD X-Git-Tag: v6.15-rc1~195^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=361da275e5ce98bbab5f6990d02eb9709742d703;p=thirdparty%2Fkernel%2Flinux.git Merge branch 'kvm-nvmx-and-vm-teardown' into HEAD The immediate issue being fixed here is a nVMX bug where KVM fails to detect that, after nested VM-Exit, L1 has a pending IRQ (or NMI). However, checking for a pending interrupt accesses the legacy PIC, and x86's kvm_arch_destroy_vm() currently frees the PIC before destroying vCPUs, i.e. checking for IRQs during the forced nested VM-Exit results in a NULL pointer deref; that's a prerequisite for the nVMX fix. The remaining patches attempt to bring a bit of sanity to x86's VM teardown code, which has accumulated a lot of cruft over the years. E.g. KVM currently unloads each vCPU's MMUs in a separate operation from destroying vCPUs, all because when guest SMP support was added, KVM had a kludgy MMU teardown flow that broke when a VM had more than one 1 vCPU. And that oddity lived on, for 18 years... Signed-off-by: Paolo Bonzini --- 361da275e5ce98bbab5f6990d02eb9709742d703