mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2026-09-28 19:20:30 +00:00
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:
|
History
|
|
|---|---|---|
| .. | ||
| diag.c | ||
| gaccess.c | ||
| gaccess.h | ||
| guestdbg.c | ||
| intercept.c | ||
| interrupt.c | ||
| irq.h | ||
| Kconfig | ||
| kvm-s390.c | ||
| kvm-s390.h | ||
| Makefile | ||
| priv.c | ||
| sigp.c | ||
| sthyi.c | ||
| trace-s390.h | ||
| trace.h | ||
| vsie.c | ||