From 6fa3bc4f9101dac42395efd69ee05866219c0f0b Mon Sep 17 00:00:00 2001 From: Juli Mallett Date: Tue, 6 Mar 2012 08:02:10 +0000 Subject: [PATCH] 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. --- sys/mips/mips/pm_machdep.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/mips/mips/pm_machdep.c b/sys/mips/mips/pm_machdep.c index d136f5f6994..b709284333c 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)); -- 2.45.2