qemu/linux-user
Peter Maydell 62f141a426 linux-user/arm: Remove bogus SVC 0xf0002 handling
We incorrectly treat SVC 0xf0002 as a cacheflush request (which is a
NOP for QEMU).  This is the wrong syscall number, because in the
svc-immediate OABI syscall numbers are all offset by the
ARM_SYSCALL_BASE value and so the correct insn is SVC 0x9f0002.
(This is handled further down in the code with the other Arm-specific
syscalls like NR_breakpoint.)

When this code was initially added in commit 6f1f31c069 in
2004, ARM_NR_cacheflush was defined as (ARM_SYSCALL_BASE + 0xf0000 + 2)
so the value in the comparison took account of the extra 0x900000
offset. In commit fbb4a2e371 in 2008, the ARM_SYSCALL_BASE
was removed from the definition of ARM_NR_cacheflush and handling
for this group of syscalls was added below the point where we subtract
ARM_SYSCALL_BASE from the SVC immediate value. However that commit
forgot to remove the now-obsolete earlier handling code.

Remove the spurious ARM_NR_cacheflush condition.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Message-id: 20200420212206.12776-3-peter.maydell@linaro.org
2020-05-21 20:00:18 +01:00
..
aarch64 linux-user, aarch64: sync syscall numbers with kernel v5.5 2020-03-20 16:02:00 +01:00
alpha
arm linux-user/arm: Remove bogus SVC 0xf0002 handling 2020-05-21 20:00:18 +01:00
cris
generic
host
hppa
i386 linux-user/i386: Emulate x86_64 vsyscalls 2020-03-26 08:08:54 +01:00
m68k
microblaze
mips linux-user,mips: update syscall-args-o32.c.inc 2020-03-20 16:02:00 +01:00
mips64
nios2 linux-user, nios2: sync syscall numbers with kernel v5.5 2020-03-20 16:02:00 +01:00
openrisc linux-user, openrisc: sync syscall numbers with kernel v5.5 2020-03-20 16:02:00 +01:00
ppc linux-user/ppc: Fix padding in mcontext_t for ppc64 2020-04-17 10:38:29 +10:00
riscv linux-user/riscv: fix up struct target_ucontext definition 2020-04-29 13:16:37 -07:00
s390x
sh4
sparc
sparc64
tilegx
x86_64
xtensa
Makefile.objs
cpu_loop-common.h
elfload.c linux-user: completely re-write init_guest_space 2020-05-15 15:25:16 +01:00
errno_defs.h
exit.c
fd-trans.c
fd-trans.h
flat.h
flatload.c linux-user: completely re-write init_guest_space 2020-05-15 15:25:16 +01:00
ioctls.h
linux_loop.h
linuxload.c
main.c exec/cpu-all: Use bool for have_guest_base 2020-05-15 15:25:16 +01:00
mmap.c
qemu.h linux-user: completely re-write init_guest_space 2020-05-15 15:25:16 +01:00
safe-syscall.S
signal-common.h
signal.c
socket.h
strace.c
strace.list
syscall.c linux-user/syscall.c: add target-to-host mapping for epoll_create1() 2020-04-16 09:24:22 +02:00
syscall_defs.h
syscall_types.h
target_flat.h
trace-events
uaccess.c
uname.c
uname.h
vm86.c