KVM: x86: Don't load/put vCPU when unloading its MMU during teardown

Don't load (and then put) a vCPU when unloading its MMU during VM
destruction, as nothing in kvm_mmu_unload() accesses vCPU state beyond the
root page/address of each MMU, i.e. can't possible need to run with the
vCPU loaded.

Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-ID: <20250224235542.2562848-5-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Sean Christopherson 2025-02-24 15:55:39 -08:00 committed by Paolo Bonzini
parent 982caaa115
commit ed09b50b54

View File

@ -12754,13 +12754,6 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
return ret;
}
static void kvm_unload_vcpu_mmu(struct kvm_vcpu *vcpu)
{
vcpu_load(vcpu);
kvm_mmu_unload(vcpu);
vcpu_put(vcpu);
}
static void kvm_unload_vcpu_mmus(struct kvm *kvm)
{
unsigned long i;
@ -12768,7 +12761,7 @@ static void kvm_unload_vcpu_mmus(struct kvm *kvm)
kvm_for_each_vcpu(i, vcpu, kvm) {
kvm_clear_async_pf_completion_queue(vcpu);
kvm_unload_vcpu_mmu(vcpu);
kvm_mmu_unload(vcpu);
}
}