KVM MMU: Take sp level into account when calculating quadran
PATCH 3/3 KVM MMU: Take sp level into account when calculating quadran
Take sp level into account when calculating quadrant, because only when level == PT_PAGE_TABLE_LEVEL, quadrant is needed.
Signed-off-by Gui Jianfeng <[email protected]>
--- arch/x86/kvm/mmu.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
arch/x86/kvm/mmu.c +2 -1
@@ -1324,7 +1324,8 @@ static struct kvm_mmu_page *kvm_mmu_get_page(struct kvm_vcpu *vcpu,if (role.direct) role.cr4_pae =0 ; role.access = access; -if (vcpu->arch.mmu.root_level <=PT32_ROOT_LEVEL ) { +if (vcpu->arch.mmu.root_level <=PT32_ROOT_LEVEL && + level ==PT_PAGE_TABLE_LEVEL ) { quadrant = gaddr >> (PAGE_SHIFT + (PT64_PT_BITS * level)); quadrant &= (1 << ((PT32_PT_BITS -PT64_PT_BITS ) * level)) -1 ; role.quadrant = quadrant;
Signature · 1 line
1.6.5.2
Quoted 2 lines · Gui Jianfeng
Take sp level into account when calculating quadrant, because only when level ==
PT_PAGE_TABLE_LEVEL, quadrant is needed.
Please ignore this patch, Sorry for the noise.
Gui
Quoted 20 lines
Signed-off-by Gui Jianfeng <[email protected]>--- arch/x86/kvm/mmu.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)arch/x86/kvm/mmu.c +2
-1@@ -1324,7 +1324,8 @@ static struct kvm_mmu_page *kvm_mmu_get_page(struct kvm_vcpu *vcpu,if (role.direct) role.cr4_pae =0 ; role.access = access; -if (vcpu->arch.mmu.root_level <=PT32_ROOT_LEVEL ) { +if (vcpu->arch.mmu.root_level <=PT32_ROOT_LEVEL && + level ==PT_PAGE_TABLE_LEVEL ) { quadrant = gaddr >> (PAGE_SHIFT + (PT64_PT_BITS * level)); quadrant &= (1 << ((PT32_PT_BITS -PT64_PT_BITS ) * level)) -1 ; role.quadrant = quadrant;