• Heiko Carstens's avatar
    KVM: s390: remove change-recording override support · 232b8e3b
    Heiko Carstens authored
    Change-recording override (CO) was never implemented in any
    machine. According to the architecture it is unpredictable if a
    translation-specification exception will be recognized if the bit is
    set and EDAT1 does not apply.
    Therefore the easiest solution is to simply ignore the bit.
    
    This also fixes commit cd1836f5 ("KVM: s390:
    instruction-execution-protection support"). A guest may enable
    instruction-execution-protection (IEP) but not EDAT1. In such a case
    the guest_translate() function (arch/s390/kvm/gaccess.c) will report a
    specification exception on pages that have the IEP bit set while it
    should not.
    
    It might make sense to add full IEP support to guest_translate() and
    the GACC_IFETCH case. However, as far as I can tell the GACC_IFETCH
    case is currently only used after an instruction was executed in order
    to fetch the failing instruction. So there is no additional problem
    *currently*.
    
    Fixes: cd1836f5 ("KVM: s390: instruction-execution-protection support")
    Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    232b8e3b
gaccess.c 30.7 KB