Skip to content
  • Carsten Otte's avatar
    KVM: s390: Fix prefix register checking in arch/s390/kvm/sigp.c · f50146bd
    Carsten Otte authored
    
    
    This patch corrects the checking of the new address for the prefix register.
    On s390, the prefix register is used to address the cpu's lowcore (address
    0...8k). This check is supposed to verify that the memory is readable and
    present.
    copy_from_guest is a helper function, that can be used to read from guest
    memory. It applies prefixing, adds the start address of the guest memory in
    user, and then calls copy_from_user. Previous code was obviously broken for
    two reasons:
    - prefixing should not be applied here. The current prefix register is
      going to be updated soon, and the address we're looking for will be
      0..8k after we've updated the register
    - we're adding the guest origin (gmsor) twice: once in subject code
      and once in copy_from_guest
    
    With kuli, we did not hit this problem because (a) we were lucky with
    previous prefix register content, and (b) our guest memory was mmaped
    very low into user address space.
    
    Cc: stable@kernel.org
    Signed-off-by: default avatarCarsten Otte <cotte@de.ibm.com>
    Reported-by: default avatarAlexander Graf <agraf@suse.de>
    Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
    f50146bd