提交 1fcf1cc7 编写于 作者: R Ralf Baechle

We pass a kernel pointer to do_sigaltstack in sys32_sigaltstack, so

we need to do the set_fs(KERNEL_DS) thing around this call.
Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
上级 3c37026d
...@@ -488,6 +488,7 @@ __attribute_used__ noinline static void ...@@ -488,6 +488,7 @@ __attribute_used__ noinline static void
_sys32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) _sys32_rt_sigreturn(nabi_no_regargs struct pt_regs regs)
{ {
struct rt_sigframe32 *frame; struct rt_sigframe32 *frame;
mm_segment_t old_fs;
sigset_t set; sigset_t set;
stack_t st; stack_t st;
s32 sp; s32 sp;
...@@ -518,7 +519,10 @@ _sys32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) ...@@ -518,7 +519,10 @@ _sys32_rt_sigreturn(nabi_no_regargs struct pt_regs regs)
/* It is more difficult to avoid calling this function than to /* It is more difficult to avoid calling this function than to
call it and ignore errors. */ call it and ignore errors. */
old_fs = get_fs();
set_fs (KERNEL_DS);
do_sigaltstack(&st, NULL, regs.regs[29]); do_sigaltstack(&st, NULL, regs.regs[29]);
set_fs (old_fs);
/* /*
* Don't let your children do this ... * Don't let your children do this ...
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册