• Heiko Carstens's avatar
    KVM: s390: sthyi: remove invalid guest write access · 631aebfe
    Heiko Carstens authored
    handle_sthyi() always writes to guest memory if the sthyi function
    code is zero in order to fault in the page that later is written to.
    
    However a function code of zero does not necessarily mean that a write
    to guest memory happens: if the KVM host is running as a second level
    guest under z/VM 6.2 the sthyi instruction is indicated to be
    available to the KVM host, however if the instruction is executed it
    will always return with a return code that indicates "unsupported
    function code".
    
    In such a case handle_sthyi() must not write to guest memory. This
    means that the prior write access to fault in the guest page may
    result in invalid guest exceptions, and/or invalid data modification.
    
    In order to be architecture compliant simply remove the write_guest()
    call.
    
    Given that the guest assumed a write access anyway, this fix does not
    qualify for -stable. This just makes sure the sthyi handler is
    architecture compliant.
    
    Fixes: 95ca2cb5 ("KVM: s390: Add sthyi emulation")
    Reviewed-by: default avatarJanosch Frank <frankja@linux.vnet.ibm.com>
    Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Reviewed-by: default avatarCornelia Huck <cohuck@redhat.com>
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    631aebfe
sthyi.c 10.9 KB