From: Ralf Baechle <ralf@linux-mips.org>
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: http://pilppa.com/gitweb/?a=commitdiff_plain;h=1fcf1cc742d01f786cda619fd49450b77b09e8c5;p=linux-2.6-omap-h63xx.git

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 <ralf@linux-mips.org>
---

diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c
index e8c380dceb8..5e7d0fa0267 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 ...