mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 08:33:17 +02:00
KVM: x86/mmu: Move SPTE writable invariant checks to a helper function
Move the WARNs in spte_can_locklessly_be_made_writable() to a separate helper function. This is in preparation for moving these checks to the places where SPTEs are set. Opportunistically add warning error messages that include the SPTE to make future debugging of these warnings easier. Suggested-by: Sean Christopherson <seanjc@google.com> Signed-off-by: David Matlack <dmatlack@google.com> Message-Id: <20220125230518.1697048-2-dmatlack@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
1714a4eb6f
commit
932859a4e0
|
|
@ -339,15 +339,21 @@ static __always_inline bool is_rsvd_spte(struct rsvd_bits_validate *rsvd_check,
|
|||
__is_rsvd_bits_set(rsvd_check, spte, level);
|
||||
}
|
||||
|
||||
static inline void check_spte_writable_invariants(u64 spte)
|
||||
{
|
||||
if (spte & shadow_mmu_writable_mask)
|
||||
WARN_ONCE(!(spte & shadow_host_writable_mask),
|
||||
"kvm: MMU-writable SPTE is not Host-writable: %llx",
|
||||
spte);
|
||||
else
|
||||
WARN_ONCE(spte & PT_WRITABLE_MASK,
|
||||
"kvm: Writable SPTE is not MMU-writable: %llx", spte);
|
||||
}
|
||||
|
||||
static inline bool spte_can_locklessly_be_made_writable(u64 spte)
|
||||
{
|
||||
if (spte & shadow_mmu_writable_mask) {
|
||||
WARN_ON_ONCE(!(spte & shadow_host_writable_mask));
|
||||
return true;
|
||||
}
|
||||
|
||||
WARN_ON_ONCE(spte & PT_WRITABLE_MASK);
|
||||
return false;
|
||||
check_spte_writable_invariants(spte);
|
||||
return spte & shadow_mmu_writable_mask;
|
||||
}
|
||||
|
||||
static inline u64 get_mmio_spte_generation(u64 spte)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user