On Mon, Sep 13, 2021 at 4:05 PM Richard Henderson < richard.henderson@linaro.org> wrote: > Remap the faulting address from the host address space into > the guest address space. > > Signed-off-by: Richard Henderson > --- > linux-user/signal.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > Reviewed-by: Warner Losh If I'm understanding this right, the FreeBSD code in the bsd-user fork won't be affected by this change. (or conversely, it's so far behind the linux stuff that it will need to be completely revamped). Warner > diff --git a/linux-user/signal.c b/linux-user/signal.c > index a8faea6f09..73c0f9066b 100644 > --- a/linux-user/signal.c > +++ b/linux-user/signal.c > @@ -405,6 +405,15 @@ static inline void > host_to_target_siginfo_noswap(target_siginfo_t *tinfo, > tinfo->_sifields._sigpoll._fd = info->si_fd; > si_type = QEMU_SI_POLL; > break; > + case TARGET_SIGSEGV: > + case TARGET_SIGBUS: > + /* > + * Remap the host address into the target space. > + * Even an invalid guest address is still valid for a fault. > + */ > + tinfo->_sifields._sigfault._addr = h2g_nocheck(info->si_addr); > + si_type = QEMU_SI_FAULT; > + break; > default: > /* Assume a sigqueue()/mq_notify()/rt_sigqueueinfo() source. > */ > tinfo->_sifields._rt._pid = info->si_pid; > -- > 2.25.1 > >