]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
KVM: x86: Don't load/put vCPU when unloading its MMU during teardown
authorSean Christopherson <seanjc@google.com>
Mon, 24 Feb 2025 23:55:39 +0000 (15:55 -0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 26 Feb 2025 18:17:23 +0000 (13:17 -0500)
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>
arch/x86/kvm/x86.c

index 6fc4ddc606bd4bdbe74ff5f9e9ddf97c89934758..15de6e92af7dc78d064f898b24fa1d74f21ceb7f 100644 (file)
@@ -12754,13 +12754,6 @@ out:
        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);
        }
 }