diff options
author | Juli Mallett <jmallett@FreeBSD.org> | 2012-03-06 08:02:10 +0000 |
---|---|---|
committer | Juli Mallett <jmallett@FreeBSD.org> | 2012-03-06 08:02:10 +0000 |
commit | 6fa3bc4f9101dac42395efd69ee05866219c0f0b (patch) | |
tree | 489fbbc8c68067d2130e149cf454d6c42a6ebbda /sys/mips | |
parent | bdf4700515bf660b9231e6ed746c1ece3f656443 (diff) | |
download | src-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.c | 1 |
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 *)®s->ast, (void *)&sf.sf_uc.uc_mcontext.mc_regs[1], sizeof(sf.sf_uc.uc_mcontext.mc_regs) - sizeof(register_t)); |