diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2017-06-19 08:02:28 +0200 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2017-06-22 12:53:34 +0200 |
commit | addb63c18a0d52a9ce2611d039f981f7b6148d2b (patch) | |
tree | c9c14a0be0c10c492c746b26703ca8fae91f9da6 /arch/s390/mm/mmap.c | |
parent | 1ba15b24f07c44f68067959522639226c963e212 (diff) | |
download | talos-op-linux-addb63c18a0d52a9ce2611d039f981f7b6148d2b.tar.gz talos-op-linux-addb63c18a0d52a9ce2611d039f981f7b6148d2b.zip |
KVM: s390: gaccess: fix real-space designation asce handling for gmap shadows
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: 3218f7094b6b ("s390/mm: support real-space for gmap shadows")
Cc: David Hildenbrand <david@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Reviewed-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'arch/s390/mm/mmap.c')
0 files changed, 0 insertions, 0 deletions