KVM: RISC-V: Unmap stage2 mapping when deleting/moving a memslot
Unmap stage2 page tables when a memslot is being deleted or moved. It's
the architectures' responsibility to ensure existing mappings are removed
when kvm_arch_flush_shadow_memslot() returns.
Fixes: 9d05c1fee8
("RISC-V: KVM: Implement stage2 page table programming")
Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Anup Patel <anup.patel@wdc.com>
This commit is contained in:
parent
1360572566
commit
756e1fc165
@ -453,6 +453,12 @@ void kvm_arch_flush_shadow_all(struct kvm *kvm)
|
|||||||
void kvm_arch_flush_shadow_memslot(struct kvm *kvm,
|
void kvm_arch_flush_shadow_memslot(struct kvm *kvm,
|
||||||
struct kvm_memory_slot *slot)
|
struct kvm_memory_slot *slot)
|
||||||
{
|
{
|
||||||
|
gpa_t gpa = slot->base_gfn << PAGE_SHIFT;
|
||||||
|
phys_addr_t size = slot->npages << PAGE_SHIFT;
|
||||||
|
|
||||||
|
spin_lock(&kvm->mmu_lock);
|
||||||
|
stage2_unmap_range(kvm, gpa, size, false);
|
||||||
|
spin_unlock(&kvm->mmu_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
void kvm_arch_commit_memory_region(struct kvm *kvm,
|
void kvm_arch_commit_memory_region(struct kvm *kvm,
|
||||||
|
Loading…
Reference in New Issue
Block a user