KVM: MMU: Fix auditing code
Fix build breakage of hpa lookup in audit_mappings_page. Moreover, make this function robust against shadow_notrap_nonpresent_pte entries. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
43890ae8bc
commit
3438253926
|
@ -3029,11 +3029,13 @@ static void audit_mappings_page(struct kvm_vcpu *vcpu, u64 page_pte,
|
||||||
" in nonleaf level: levels %d gva %lx"
|
" in nonleaf level: levels %d gva %lx"
|
||||||
" level %d pte %llx\n", audit_msg,
|
" level %d pte %llx\n", audit_msg,
|
||||||
vcpu->arch.mmu.root_level, va, level, ent);
|
vcpu->arch.mmu.root_level, va, level, ent);
|
||||||
|
else
|
||||||
audit_mappings_page(vcpu, ent, va, level - 1);
|
audit_mappings_page(vcpu, ent, va, level - 1);
|
||||||
} else {
|
} else {
|
||||||
gpa_t gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, va);
|
gpa_t gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, va);
|
||||||
hpa_t hpa = (hpa_t)gpa_to_pfn(vcpu, gpa) << PAGE_SHIFT;
|
gfn_t gfn = gpa >> PAGE_SHIFT;
|
||||||
|
pfn_t pfn = gfn_to_pfn(vcpu->kvm, gfn);
|
||||||
|
hpa_t hpa = (hpa_t)pfn << PAGE_SHIFT;
|
||||||
|
|
||||||
if (is_shadow_present_pte(ent)
|
if (is_shadow_present_pte(ent)
|
||||||
&& (ent & PT64_BASE_ADDR_MASK) != hpa)
|
&& (ent & PT64_BASE_ADDR_MASK) != hpa)
|
||||||
|
|
Loading…
Reference in New Issue