aboutsummaryrefslogtreecommitdiff
path: root/sys/i386/linux/linux_sysvec.c
diff options
context:
space:
mode:
authorDmitry Chagin <dchagin@FreeBSD.org>2022-05-15 18:00:05 +0000
committerDmitry Chagin <dchagin@FreeBSD.org>2022-06-17 19:35:19 +0000
commit0fae97fd1c7b77c11b8f4bd239ce547bf5bf5aca (patch)
treebcddce95a20d3d98bba518a22175523ca2211524 /sys/i386/linux/linux_sysvec.c
parent4be4063cef676b014733ec881bc7db6d3a5ac1b5 (diff)
Diffstat (limited to 'sys/i386/linux/linux_sysvec.c')
-rw-r--r--sys/i386/linux/linux_sysvec.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/i386/linux/linux_sysvec.c b/sys/i386/linux/linux_sysvec.c
index fa45057939ff..13591c569aae 100644
--- a/sys/i386/linux/linux_sysvec.c
+++ b/sys/i386/linux/linux_sysvec.c
@@ -422,7 +422,6 @@ linux_rt_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask)
bzero(&frame, sizeof(frame));
- frame.sf_handler = catcher;
frame.sf_sig = sig;
frame.sf_siginfo = &fp->sf_si;
frame.sf_ucontext = &fp->sf_sc;
@@ -473,6 +472,7 @@ linux_rt_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask)
/* Build context to run handler in. */
regs->tf_esp = (int)fp;
regs->tf_eip = __kernel_rt_sigreturn;
+ regs->tf_edi = catcher;
regs->tf_eflags &= ~(PSL_T | PSL_VM | PSL_D);
regs->tf_cs = _ucodesel;
regs->tf_ds = _udatasel;
@@ -532,7 +532,6 @@ linux_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask)
bzero(&frame, sizeof(frame));
- frame.sf_handler = catcher;
frame.sf_sig = sig;
bsd_to_linux_sigset(mask, &lmask);
@@ -574,6 +573,7 @@ linux_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask)
/* Build context to run handler in. */
regs->tf_esp = (int)fp;
regs->tf_eip = __kernel_sigreturn;
+ regs->tf_edi = catcher;
regs->tf_eflags &= ~(PSL_T | PSL_VM | PSL_D);
regs->tf_cs = _ucodesel;
regs->tf_ds = _udatasel;