aboutsummaryrefslogtreecommitdiff
path: root/sys/mips
diff options
context:
space:
mode:
authorJuli Mallett <jmallett@FreeBSD.org>2012-03-06 08:02:10 +0000
committerJuli Mallett <jmallett@FreeBSD.org>2012-03-06 08:02:10 +0000
commit6fa3bc4f9101dac42395efd69ee05866219c0f0b (patch)
tree489fbbc8c68067d2130e149cf454d6c42a6ebbda /sys/mips
parentbdf4700515bf660b9231e6ed746c1ece3f656443 (diff)
downloadsrc-6fa3bc4f9101dac42395efd69ee05866219c0f0b.tar.gz
src-6fa3bc4f9101dac42395efd69ee05866219c0f0b.zip
Store TLS base in the sigframe just as is done in freebsd32_sendsig. Because
the native sigreturn doesn't use set_mcontext like the COMPAT_FREEBSD32 version does, this wouldn't actually result in overwriting the TLS base. Probably it makes sense to restructure the native sigreturn to use set_mcontext for consistency, and to allow sigreturn to change the TLS base.
Notes
Notes: svn path=/head/; revision=232585
Diffstat (limited to 'sys/mips')
-rw-r--r--sys/mips/mips/pm_machdep.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/mips/mips/pm_machdep.c b/sys/mips/mips/pm_machdep.c
index d136f5f6994a..b709284333c4 100644
--- a/sys/mips/mips/pm_machdep.c
+++ b/sys/mips/mips/pm_machdep.c
@@ -110,6 +110,7 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask)
sf.sf_uc.uc_mcontext.mc_pc = regs->pc;
sf.sf_uc.uc_mcontext.mullo = regs->mullo;
sf.sf_uc.uc_mcontext.mulhi = regs->mulhi;
+ sf.sf_uc.uc_mcontext.mc_tls = td->td_md.md_tls;
sf.sf_uc.uc_mcontext.mc_regs[0] = UCONTEXT_MAGIC; /* magic number */
bcopy((void *)&regs->ast, (void *)&sf.sf_uc.uc_mcontext.mc_regs[1],
sizeof(sf.sf_uc.uc_mcontext.mc_regs) - sizeof(register_t));