Skip to content
Snippets Groups Projects
Commit f8333de2 authored by Janis Schoetterl-Glausch's avatar Janis Schoetterl-Glausch Committed by Thomas Huth
Browse files

target/s390x/tcg: SPX: check validity of new prefix


According to the architecture, SET PREFIX must try to access the new
prefix area and recognize an addressing exception if the area is not
accessible.
For qemu this check prevents a crash in cpu_map_lowcore after an
inaccessible prefix area has been set.

Signed-off-by: default avatarJanis Schoetterl-Glausch <scgl@linux.ibm.com>
Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
Message-Id: <20220630094340.3646279-1-scgl@linux.ibm.com>
Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
parent 39e19f5f
No related branches found
No related tags found
No related merge requests found
......@@ -158,6 +158,13 @@ void HELPER(spx)(CPUS390XState *env, uint64_t a1)
if (prefix == old_prefix) {
return;
}
/*
* Since prefix got aligned to 8k and memory increments are a multiple of
* 8k checking the first page is sufficient
*/
if (!mmu_absolute_addr_valid(prefix, true)) {
tcg_s390_program_interrupt(env, PGM_ADDRESSING, GETPC());
}
env->psa = prefix;
HELPER_LOG("prefix: %#x\n", prefix);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment