• James Morse's avatar
    KVM: arm/arm64: Fix guest external abort matching · bb428921
    James Morse authored
    The ARM-ARM has two bits in the ESR/HSR relevant to external aborts.
    A range of {I,D}FSC values (of which bit 5 is always set) and bit 9 'EA'
    which provides:
    > an IMPLEMENTATION DEFINED classification of External Aborts.
    
    This bit is in addition to the {I,D}FSC range, and has an implementation
    defined meaning. KVM should always ignore this bit when handling external
    aborts from a guest.
    
    Remove the ESR_ELx_EA definition and rewrite its helper
    kvm_vcpu_dabt_isextabt() to check the {I,D}FSC range. This merges
    kvm_vcpu_dabt_isextabt() and the recently added is_abort_sea() helper.
    
    CC: Tyler Baicar <tbaicar@codeaurora.org>
    Reported-by: default avatargengdongjiu <gengdj.1984@gmail.com>
    Signed-off-by: default avatarJames Morse <james.morse@arm.com>
    Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: default avatarChristoffer Dall <cdall@linaro.org>
    bb428921
kvm_arm.h 7.65 KB