All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] target/s390x/tcg: SPX: check validity of new prefix
@ 2022-06-30  9:43 Janis Schoetterl-Glausch
  2022-07-06 10:17 ` Thomas Huth
  0 siblings, 1 reply; 2+ messages in thread
From: Janis Schoetterl-Glausch @ 2022-06-30  9:43 UTC (permalink / raw)
  To: qemu-s390x, Richard Henderson, David Hildenbrand
  Cc: Janis Schoetterl-Glausch, Cornelia Huck, Thomas Huth, qemu-devel

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: Janis Schoetterl-Glausch <scgl@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
---
 target/s390x/tcg/misc_helper.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/target/s390x/tcg/misc_helper.c b/target/s390x/tcg/misc_helper.c
index aab9c47747..10dadb002a 100644
--- a/target/s390x/tcg/misc_helper.c
+++ b/target/s390x/tcg/misc_helper.c
@@ -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);

base-commit: 3a821c52e1a30ecd9a436f2c67cc66b5628c829f
-- 
2.36.1



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] target/s390x/tcg: SPX: check validity of new prefix
  2022-06-30  9:43 [PATCH v2] target/s390x/tcg: SPX: check validity of new prefix Janis Schoetterl-Glausch
@ 2022-07-06 10:17 ` Thomas Huth
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Huth @ 2022-07-06 10:17 UTC (permalink / raw)
  To: Janis Schoetterl-Glausch, qemu-s390x, Richard Henderson,
	David Hildenbrand
  Cc: Cornelia Huck, qemu-devel

On 30/06/2022 11.43, Janis Schoetterl-Glausch wrote:
> 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: Janis Schoetterl-Glausch <scgl@linux.ibm.com>
> Reviewed-by: David Hildenbrand <david@redhat.com>
> ---
>   target/s390x/tcg/misc_helper.c | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/target/s390x/tcg/misc_helper.c b/target/s390x/tcg/misc_helper.c
> index aab9c47747..10dadb002a 100644
> --- a/target/s390x/tcg/misc_helper.c
> +++ b/target/s390x/tcg/misc_helper.c
> @@ -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);

Thanks, queued to my s390x-next branch now:

  https://gitlab.com/thuth/qemu/-/commits/s390x-next

  Thomas



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-07-06 10:21 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-30  9:43 [PATCH v2] target/s390x/tcg: SPX: check validity of new prefix Janis Schoetterl-Glausch
2022-07-06 10:17 ` Thomas Huth

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.