summary refs log tree commit diff stats
path: root/scripts/qapi/source.py
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2021-04-28 12:33:54 -0700
committerLaurent Vivier <laurent@vivier.eu>2021-05-15 21:44:38 +0200
commit5d79bd111ff4f9ed0b19c20f6708a770651a9048 (patch)
tree99df12c1bdc98bcb911e8fe372f955a44a7f610e /scripts/qapi/source.py
parent4cce45df712650e494784415167a9e6a3f3d5136 (diff)
downloadfocaccia-qemu-5d79bd111ff4f9ed0b19c20f6708a770651a9048.tar.gz
focaccia-qemu-5d79bd111ff4f9ed0b19c20f6708a770651a9048.zip
linux-user/s390x: Fix sigframe types
Noticed via gitlab clang-user job:

  TEST    signals on s390x
../linux-user/s390x/signal.c:258:9: runtime error: \
  1.84467e+19 is outside the range of representable values of \
  type 'unsigned long'

Which points to the fact that we were performing a double-to-uint64_t
conversion while storing the fp registers, instead of just copying
the data across.

Turns out there are several errors:

target_ulong is the size of the target register, whereas abi_ulong
is the target 'unsigned long' type.  Not a big deal here, since we
only support 64-bit s390x, but not correct either.

In target_sigcontext and target ucontext, we used a host pointer
instead of a target pointer, aka abi_ulong.

Fixing this allows the removal of a cast to __put_user.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: David Hildenbrand <david@redhat.com>
Message-Id: <20210428193408.233706-2-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Diffstat (limited to 'scripts/qapi/source.py')
0 files changed, 0 insertions, 0 deletions