On Mon, Nov 06, 2017 at 06:33:22PM +0000, Peter Maydell wrote:
> This patchset fixes most of the problems with delivering SIGSEGV
> noted in https://bugs.launchpad.net/qemu/+bug/1705118:
> * s390x is missing masking operations on the fault address
> passed to the guest in si_addr
> * ppc is passing the PC of the offending insn, not the data
> address, into si_addr
> * sparc fails to record the address of a data fault and so
> passes 0 into si_addr
> * sparc isn't implementing rt_sigaction correctly (it has an
> extra 'restorer' argument, similar to alpha)
>
> It doesn't actually get the sparc testcase from that bug working,
> though, because SPARC is entirely missing support for setup_rt_frame()
> and do_rt_sigreturn(), so it can't deliver RT signals.
>
> Implementing RT signal delivery is too big a bugfix for an afternoon,
> so here are the simpler parts. I'll leave the signal delivery part
> to somebody who cares about SPARC guests...
>
> thanks
> -- PMM
Thanks!
series applied to linux-user tree,
Riku
> Peter Maydell (4):
> linux-user/s390x: Mask si_addr for SIGSEGV
> linux-user/ppc: Report correct fault address for data faults
> linux-user/sparc: Put address for data faults where linux-user expects
> it
> linux-user: Handle rt_sigaction correctly for SPARC
>
> linux-user/main.c | 8 ++++++--
> linux-user/syscall.c | 27 +++++++++++++++++++++++----
> target/sparc/mmu_helper.c | 8 ++++++++
> 3 files changed, 37 insertions(+), 6 deletions(-)
>
> --
> 2.7.4
>