[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 0/4] linux-user/arm: Fix BKPT, SVC immediate handling
From: |
Peter Maydell |
Subject: |
[PATCH 0/4] linux-user/arm: Fix BKPT, SVC immediate handling |
Date: |
Mon, 20 Apr 2020 22:22:02 +0100 |
This patchseries fixes issues with the code in linux-user/arm/cpu_loop.c:
* it incorrectly thinks BKPT is a syscall instruction
(https://bugs.launchpad.net/qemu/+bug/1873898, reported via irc)
* a stale line of code means we incorrectly NOP SVC #0xf0002
* we don't implement the distinction between 0x9f0000..0x9f07ff
(should return -ENOSYS if not implemented) and higher numbers
(should cause a SIGILL)
* we abort() for bad immediate values to SVC (ie not the 0 of EABI
or the >0x9f0000 of OABI); the kernel delivers a SIGILL for these
* for Thumb mode, we never use the immediate value from the insn,
but we always read it anyway
This patchseries fixes all those things. (I started out fixing the
BKPT bug; everything else is problems I spotted along the way while
I was reading this bit of code...)
thanks
-- PMM
Peter Maydell (4):
linux-user/arm: BKPT should cause SIGTRAP, not be a syscall
linux-user/arm: Remove bogus SVC 0xf0002 handling
linux-user/arm: Handle invalid arm-specific syscalls correctly
linux-user/arm: Fix identification of syscall numbers
linux-user/arm/cpu_loop.c | 145 +++++++++++++++++++++-----------------
1 file changed, 81 insertions(+), 64 deletions(-)
--
2.20.1
- [PATCH 0/4] linux-user/arm: Fix BKPT, SVC immediate handling,
Peter Maydell <=