KVM: MMU: Calculate correct base gfn for direct non-DIR level
In Document/kvm/mmu.txt: gfn: Either the guest page table containing the translations shadowed by this page, or the base page frame for linear translations. See role.direct. But in __direct_map(), the base gfn calculation is incorrect, it does not calculate correctly when level=3 or 4. Fix by using PT64_LVL_ADDR_MASK() which accounts for all levels correctly. Reported-by:Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by:
Lai Jiangshan <laijs@cn.fujitsu.com> Signed-off-by:
Avi Kivity <avi@redhat.com>
parent
2032a93d
Please register or sign in to comment