diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c index 5c5fb8bef41..8b6bb842d77 100644 --- a/sys/amd64/amd64/machdep.c +++ b/sys/amd64/amd64/machdep.c @@ -533,11 +533,10 @@ osendsig(sig_t catcher, int sig, sigset_t *mask, u_long code) else { /* Old FreeBSD-style arguments. */ sf.sf_arg2 = code; + sf.sf_addr = (char *)regs->tf_err; sf.sf_ahu.sf_handler = catcher; } - sf.sf_addr = (char *) regs->tf_err; - /* save scratch registers */ sf.sf_siginfo.si_sc.sc_eax = regs->tf_eax; sf.sf_siginfo.si_sc.sc_ebx = regs->tf_ebx; @@ -687,6 +686,7 @@ sendsig(catcher, sig, mask, code) else { /* Old FreeBSD-style arguments. */ sf.sf_siginfo = code; + sf.sf_addr = (char *)regs->tf_err; sf.sf_ahu.sf_handler = catcher; } diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c index 5c5fb8bef41..8b6bb842d77 100644 --- a/sys/i386/i386/machdep.c +++ b/sys/i386/i386/machdep.c @@ -533,11 +533,10 @@ osendsig(sig_t catcher, int sig, sigset_t *mask, u_long code) else { /* Old FreeBSD-style arguments. */ sf.sf_arg2 = code; + sf.sf_addr = (char *)regs->tf_err; sf.sf_ahu.sf_handler = catcher; } - sf.sf_addr = (char *) regs->tf_err; - /* save scratch registers */ sf.sf_siginfo.si_sc.sc_eax = regs->tf_eax; sf.sf_siginfo.si_sc.sc_ebx = regs->tf_ebx; @@ -687,6 +686,7 @@ sendsig(catcher, sig, mask, code) else { /* Old FreeBSD-style arguments. */ sf.sf_siginfo = code; + sf.sf_addr = (char *)regs->tf_err; sf.sf_ahu.sf_handler = catcher; }