KVM: x86/mmu: Fix return value in tdp_mmu_map_handle_target_level()
[ Upstream commit 57a3e96d6d17ae5ac9861ef34af024a627f1c3bb ]
Currently tdp_mmu_map_handle_target_level() returns 0, which is
RET_PF_RETRY, when page fault is actually fixed. This makes
kvm_tdp_mmu_map() also return RET_PF_RETRY in this case, instead of
RET_PF_FIXED. Fix by initializing ret to RET_PF_FIXED.
Note that kvm_mmu_page_fault() resumes guest on both RET_PF_RETRY and
RET_PF_FIXED, which means in practice returning the two won't make
difference, so this fix alone won't be necessary for stable tree.
Fixes: bb18842e21
("kvm: x86/mmu: Add TDP MMU PF handler")
Reviewed-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Ben Gardon <bgardon@google.com>
Signed-off-by: Kai Huang <kai.huang@intel.com>
Message-Id: <f9e8956223a586cd28c090879a8ff40f5eb6d609.1623717884.git.kai.huang@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
64d31137b1
commit
31dcfec19d
@@ -527,7 +527,7 @@ static int tdp_mmu_map_handle_target_level(struct kvm_vcpu *vcpu, int write,
|
|||||||
kvm_pfn_t pfn, bool prefault)
|
kvm_pfn_t pfn, bool prefault)
|
||||||
{
|
{
|
||||||
u64 new_spte;
|
u64 new_spte;
|
||||||
int ret = 0;
|
int ret = RET_PF_FIXED;
|
||||||
int make_spte_ret = 0;
|
int make_spte_ret = 0;
|
||||||
|
|
||||||
if (unlikely(is_noslot_pfn(pfn))) {
|
if (unlikely(is_noslot_pfn(pfn))) {
|
||||||
|
Reference in New Issue
Block a user