qemu-e2k/linux-user
Richard Henderson 75da499733 linux-user/ppc: Fix msr updates for signal handling
In save_user_regs, there are two bugs where we OR in a bit number
instead of the bit, clobbering the low bits of MSR.  However:

The MSR_VR and MSR_SPE bits control the availability of the insns.
If the bits were not already set in MSR, then any attempt to access
those registers would result in SIGILL.

For linux-user, we always initialize MSR to the capabilities
of the cpu.  We *could* add checks vs MSR where we currently
check insn_flags and insn_flags2, but we know they match.

Also, there's a stray cut-and-paste comment in restore.

Then, do not force little-endian binaries into big-endian mode.

Finally, use ppc_store_msr for the update to affect hflags.
Which is the reason none of these bugs were previously noticed.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20210323184340.619757-10-richard.henderson@linaro.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2021-05-04 11:41:25 +10:00
..
aarch64 semihosting: Move include/hw/semihosting/ -> include/semihosting/ 2021-03-10 15:34:12 +00:00
alpha linux-user: target: signal: Support TARGET_SS_AUTODISARM 2021-02-13 22:50:50 +01:00
arm semihosting: Move include/hw/semihosting/ -> include/semihosting/ 2021-03-10 15:34:12 +00:00
cris linux user: Fix Lesser GPL version number 2020-11-15 16:41:26 +01:00
generic linux-user: target: signal: Support TARGET_SS_AUTODISARM 2021-02-13 22:50:50 +01:00
hexagon Hexagon (target/hexagon) use env_archcpu and env_cpu 2021-05-01 08:31:43 -07:00
host
hppa linux-user: Use cpu_untagged_addr in access_ok; split out *_untagged 2021-02-16 11:04:53 +00:00
i386 linux-user: Use cpu_untagged_addr in access_ok; split out *_untagged 2021-02-16 11:04:53 +00:00
m68k linux-user: Correct definition of stack_t 2020-11-11 10:59:39 +01:00
microblaze linux user: Fix Lesser GPL version number 2020-11-15 16:41:26 +01:00
mips linux-user: target: signal: Support TARGET_SS_AUTODISARM 2021-02-13 22:50:50 +01:00
mips64 linux-user/mips: Support the n32 ABI for the R5900 2021-02-15 12:10:03 +01:00
nios2 linux user: Fix Lesser GPL version number 2020-11-15 16:41:26 +01:00
openrisc
ppc linux-user/ppc: Fix msr updates for signal handling 2021-05-04 11:41:25 +10:00
riscv linux-user/riscv: initialise the TaskState heap/stack info 2021-03-24 14:25:16 +00:00
s390x linux-user/s390x: Use the guest pointer for the sigreturn stub 2021-03-25 20:55:07 +01:00
sh4 accel/tcg: Precompute curr_cflags into cpu->tcg_cflags 2021-03-06 11:53:57 -08:00
sparc linux-user: target: signal: Support TARGET_SS_AUTODISARM 2021-02-13 22:50:50 +01:00
sparc64 linux user: Fix Lesser GPL version number 2020-11-15 16:41:26 +01:00
x86_64 linux user: Fix Lesser GPL version number 2020-11-15 16:41:26 +01:00
xtensa
cpu_loop-common.h
elfload.c linux-user/elfload: fix address calculation in fallback scenario 2021-03-13 10:45:11 +01:00
errno_defs.h
exit.c gdbstub: drop CPUEnv from gdb_exit() 2021-01-18 10:05:06 +00:00
fd-trans.c linux-user,netlink: add IFLA_BRPORT_MRP_RING_OPEN, IFLA_BRPORT_MRP_IN_OPEN 2020-11-17 15:22:52 +01:00
fd-trans.h
flat.h
flatload.c exec: Use cpu_untagged_addr in g2h; split out g2h_untagged 2021-02-16 11:04:53 +00:00
ioctls.h linux-user: Conditionalize TUNSETVNETLE 2021-01-07 05:09:06 -10:00
linux_loop.h
linuxload.c
main.c linux-user: manage binfmt-misc preserve-arg[0] flag 2021-03-13 10:45:11 +01:00
meson.build semihosting: Move ARM semihosting code to shared directories 2021-01-18 10:05:06 +00:00
mmap.c linux-user/aarch64: Implement PROT_MTE 2021-02-16 13:08:46 +00:00
qemu.h linux-user: Use signed lengths in uaccess.c 2021-04-07 18:55:27 +02:00
safe-syscall.S
semihost.c semihosting: Move include/hw/semihosting/ -> include/semihosting/ 2021-03-10 15:34:12 +00:00
signal-common.h
signal.c linux-user/signal: Decode waitid si_code 2021-02-13 22:50:49 +01:00
socket.h
strace.c linux-user: Add IPv6 options to do_print_sockopt() 2021-01-21 13:27:08 +01:00
strace.list
syscall_defs.h Remove deprecated target tilegx 2021-03-09 11:26:32 +01:00
syscall_types.h
syscall.c linux-user: NETLINK_LIST_MEMBERSHIPS: Allow bad ptr if its length is 0 2021-03-29 21:56:18 +02:00
target_flat.h
trace-events
trace.h
uaccess.c linux-user: Use signed lengths in uaccess.c 2021-04-07 18:55:27 +02:00
uname.c
uname.h
vm86.c