• Sean Christopherson's avatar
    KVM: x86/mmu: Handle MMIO SPTEs directly in mmu_set_spte() · a54aa15c
    Sean Christopherson authored
    Now that it should be impossible to convert a valid SPTE to an MMIO SPTE,
    handle MMIO SPTEs early in mmu_set_spte() without going through
    set_spte() and all the logic for removing an existing, valid SPTE.
    The other caller of set_spte(), FNAME(sync_page)(), explicitly handles
    MMIO SPTEs prior to calling set_spte().
    
    This simplifies mmu_set_spte() and set_spte(), and also "fixes" an oddity
    where MMIO SPTEs are traced by both trace_kvm_mmu_set_spte() and
    trace_mark_mmio_spte().
    
    Note, mmu_spte_set() will WARN if this new approach causes KVM to create
    an MMIO SPTE overtop a valid SPTE.
    Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
    Message-Id: <20210225204749.1512652-8-seanjc@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    a54aa15c
mmu.c 158 KB