From: Ralf Baechle Date: Wed, 13 Apr 2005 18:18:04 +0000 (+0000) Subject: We pass a kernel pointer to do_sigaltstack in sys32_sigaltstack, so X-Git-Tag: v2.6.15-rc1~731^2~1^2~226 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1fcf1cc742d01f786cda619fd49450b77b09e8c5;p=linux-2.6 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: Ralf Baechle --- diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c index e8c380dceb..5e7d0fa026 100644 --- a/arch/mips/kernel/signal32.c +++ b/arch/mips/kernel/signal32.c @@ -488,6 +488,7 @@ __attribute_used__ noinline static void _sys32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) { struct rt_sigframe32 *frame; + mm_segment_t old_fs; sigset_t set; stack_t st; s32 sp; @@ -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 call it and ignore errors. */ + old_fs = get_fs(); + set_fs (KERNEL_DS); do_sigaltstack(&st, NULL, regs.regs[29]); + set_fs (old_fs); /* * Don't let your children do this ...