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 >