Skip to content
Commit 9ffe9265 authored by Hou Wenlong's avatar Hou Wenlong Committed by Sean Christopherson
Browse files

KVM: x86/mmu: Fix wrong gfn range of tlb flushing in kvm_set_pte_rmapp()



When the spte of hupe page is dropped in kvm_set_pte_rmapp(), the whole
gfn range covered by the spte should be flushed. However,
rmap_walk_init_level() doesn't align down the gfn for new level like tdp
iterator does, then the gfn used in kvm_set_pte_rmapp() is not the base
gfn of huge page. And the size of gfn range is wrong too for huge page.
Use the base gfn of huge page and the size of huge page for flushing
tlbs for huge page. Also introduce a helper function to flush the given
page (huge or not) of guest memory, which would help prevent future
buggy use of kvm_flush_remote_tlbs_with_address() in such case.

Fixes: c3134ce2 ("KVM: Replace old tlb flush function with new one to flush a specified range.")
Signed-off-by: default avatarHou Wenlong <houwenlong.hwl@antgroup.com>
Link: https://lore.kernel.org/r/0ce24d7078fa5f1f8d64b0c59826c50f32f8065e.1665214747.git.houwenlong.hwl@antgroup.com


Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
parent c667a3ba
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment