diff options
author | Sean Christopherson <seanjc@google.com> | 2024-02-28 03:41:45 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2024-05-07 17:59:23 +0200 |
commit | 36d4492765fe74d69f91b0f2dae7340c03665649 (patch) | |
tree | 03b23cc0e742318a75871f8c0b869b5f7d9981b3 /arch/x86/kvm/mmu/mmu.c | |
parent | KVM: x86/mmu: Handle no-slot faults at the beginning of kvm_faultin_pfn() (diff) | |
download | linux-36d4492765fe74d69f91b0f2dae7340c03665649.tar.xz linux-36d4492765fe74d69f91b0f2dae7340c03665649.zip |
KVM: x86/mmu: Set kvm_page_fault.hva to KVM_HVA_ERR_BAD for "no slot" faults
Explicitly set fault->hva to KVM_HVA_ERR_BAD when handling a "no slot"
fault to ensure that KVM doesn't use a bogus virtual address, e.g. if
there *was* a slot but it's unusable (APIC access page), or if there
really was no slot, in which case fault->hva will be '0' (which is a
legal address for x86).
Signed-off-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Kai Huang <kai.huang@intel.com>
Message-ID: <20240228024147.41573-15-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to '')
-rw-r--r-- | arch/x86/kvm/mmu/mmu.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c index 8c7927d10d8e..f5e13f8a67c0 100644 --- a/arch/x86/kvm/mmu/mmu.c +++ b/arch/x86/kvm/mmu/mmu.c @@ -3272,6 +3272,7 @@ static int kvm_handle_noslot_fault(struct kvm_vcpu *vcpu, fault->slot = NULL; fault->pfn = KVM_PFN_NOSLOT; fault->map_writable = false; + fault->hva = KVM_HVA_ERR_BAD; /* * If MMIO caching is disabled, emulate immediately without |