• Heiko Carstens's avatar
    KVM: s390: gaccess: fix real-space designation asce handling for gmap shadows · addb63c1
    Heiko Carstens authored
    For real-space designation asces the asce origin part is only a token.
    The asce token origin must not be used to generate an effective
    address for storage references. This however is erroneously done
    within kvm_s390_shadow_tables().
    
    Furthermore within the same function the wrong parts of virtual
    addresses are used to generate a corresponding real address
    (e.g. the region second index is used as region first index).
    
    Both of the above can result in incorrect address translations. Only
    for real space designations with a token origin of zero and addresses
    below one megabyte the translation was correct.
    
    Furthermore replace a "!asce.r" statement with a "!*fake" statement to
    make it more obvious that a specific condition has nothing to do with
    the architecture, but with the fake handling of real space designations.
    
    Fixes: 3218f709 ("s390/mm: support real-space for gmap shadows")
    Cc: David Hildenbrand <david@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Reviewed-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    addb63c1
gaccess.c 30.5 KB