qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 05/15] linux-user/s390x: Fix trace in restore_regs


From: David Hildenbrand
Subject: Re: [PATCH v2 05/15] linux-user/s390x: Fix trace in restore_regs
Date: Thu, 29 Apr 2021 09:12:49 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1

On 28.04.21 21:33, Richard Henderson wrote:
Directly reading sc->regs.psw.addr misses the bswap
that may be performed by __get_user.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
  linux-user/s390x/signal.c | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c
index e455a9818d..dcc6f7bc02 100644
--- a/linux-user/s390x/signal.c
+++ b/linux-user/s390x/signal.c
@@ -232,16 +232,17 @@ give_sigsegv:
static void restore_sigregs(CPUS390XState *env, target_sigregs *sc)
  {
+    target_ulong prev_addr;
      int i;
for (i = 0; i < 16; i++) {
          __get_user(env->regs[i], &sc->regs.gprs[i]);
      }
+ prev_addr = env->psw.addr;
      __get_user(env->psw.mask, &sc->regs.psw.mask);
-    trace_user_s390x_restore_sigregs(env, (unsigned long 
long)sc->regs.psw.addr,
-                                     (unsigned long long)env->psw.addr);
      __get_user(env->psw.addr, &sc->regs.psw.addr);
+    trace_user_s390x_restore_sigregs(env, env->psw.addr, prev_addr);
for (i = 0; i < 16; i++) {
          __get_user(env->aregs[i], &sc->regs.acrs[i]);


Reviewed-by: David Hildenbrand <david@redhat.com>

--
Thanks,

David / dhildenb




reply via email to

[Prev in Thread] Current Thread [Next in Thread]