[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 08/20] s390x/tcg: convert real to absolute address for RRBE, SSKE
From: |
Thomas Huth |
Subject: |
[PULL 08/20] s390x/tcg: convert real to absolute address for RRBE, SSKE and ISKE |
Date: |
Tue, 7 Sep 2021 15:14:37 +0200 |
From: David Hildenbrand <david@redhat.com>
For RRBE, SSKE, and ISKE, we're dealing with real addresses, so we have to
convert to an absolute address first.
In the future, when adding EDAT1 support, we'll have to pay attention to
SSKE handling, as we'll be dealing with absolute addresses when the
multiple-block control is one.
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20210903155514.44772-4-david@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
target/s390x/tcg/mem_helper.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/target/s390x/tcg/mem_helper.c b/target/s390x/tcg/mem_helper.c
index 3c0820dd74..dd506d8d17 100644
--- a/target/s390x/tcg/mem_helper.c
+++ b/target/s390x/tcg/mem_helper.c
@@ -2177,6 +2177,7 @@ uint64_t HELPER(iske)(CPUS390XState *env, uint64_t r2)
uint64_t addr = wrap_address(env, r2);
uint8_t key;
+ addr = mmu_real2abs(env, addr);
if (addr > ms->ram_size) {
return 0;
}
@@ -2201,6 +2202,7 @@ void HELPER(sske)(CPUS390XState *env, uint64_t r1,
uint64_t r2)
uint64_t addr = wrap_address(env, r2);
uint8_t key;
+ addr = mmu_real2abs(env, addr);
if (addr > ms->ram_size) {
return;
}
@@ -2228,6 +2230,7 @@ uint32_t HELPER(rrbe)(CPUS390XState *env, uint64_t r2)
static S390SKeysClass *skeyclass;
uint8_t re, key;
+ addr = mmu_real2abs(env, addr);
if (addr > ms->ram_size) {
return 0;
}
--
2.27.0
- [PULL 00/20] s390x patches, Thomas Huth, 2021/09/07
- [PULL 01/20] vfio-ccw: forward halt/clear errors, Thomas Huth, 2021/09/07
- [PULL 02/20] css: fix actl handling for unit exceptions, Thomas Huth, 2021/09/07
- [PULL 03/20] tests/tcg/s390x: Test SIGILL and SIGSEGV handling, Thomas Huth, 2021/09/07
- [PULL 05/20] s390x/ioinst: Fix wrong MSCH alignment check on little endian, Thomas Huth, 2021/09/07
- [PULL 09/20] s390x/tcg: check for addressing exceptions for RRBE, SSKE and ISKE, Thomas Huth, 2021/09/07
- [PULL 04/20] s390x/tcg: fix and optimize SPX (SET PREFIX), Thomas Huth, 2021/09/07
- [PULL 07/20] s390x/tcg: fix ignoring bit 63 when setting the storage key in SSKE, Thomas Huth, 2021/09/07
- [PULL 08/20] s390x/tcg: convert real to absolute address for RRBE, SSKE and ISKE,
Thomas Huth <=
- [PULL 06/20] s390x/tcg: wrap address for RRBE, Thomas Huth, 2021/09/07
- [PULL 10/20] s390x/mmu_helper: no need to pass access type to mmu_translate_asce(), Thomas Huth, 2021/09/07
- [PULL 12/20] s390x/mmu_helper: move address validation into mmu_translate*(), Thomas Huth, 2021/09/07
- [PULL 11/20] s390x/mmu_helper: fixup mmu_translate() documentation, Thomas Huth, 2021/09/07
- [PULL 14/20] hw/s390x/s390-skeys: use memory mapping to detect which storage keys to migrate, Thomas Huth, 2021/09/07
- [PULL 17/20] hw/s390x/s390-skeys: rename skeys_enabled to skeys_are_enabled, Thomas Huth, 2021/09/07
- [PULL 16/20] hw/s390x/s390-skeys: check if an address is valid before dumping the key, Thomas Huth, 2021/09/07
- [PULL 15/20] hw/s390x/s390-skeys: use memory mapping to detect which storage keys to dump, Thomas Huth, 2021/09/07
- [PULL 18/20] hw/s390x/s390-skeys: lazy storage key enablement under TCG, Thomas Huth, 2021/09/07
- [PULL 19/20] s390x: Replace PAGE_SIZE, PAGE_SHIFT and PAGE_MASK, Thomas Huth, 2021/09/07