mirror of https://gitee.com/openkylin/linux.git
addb63c18a
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:
|
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
diag.c | ||
gaccess.c | ||
gaccess.h | ||
guestdbg.c | ||
intercept.c | ||
interrupt.c | ||
irq.h | ||
kvm-s390.c | ||
kvm-s390.h | ||
priv.c | ||
sigp.c | ||
sthyi.c | ||
trace-s390.h | ||
trace.h | ||
vsie.c |