diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2005-04-13 14:18:04 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2005-10-29 14:31:06 -0400 |
commit | 1fcf1cc742d01f786cda619fd49450b77b09e8c5 (patch) | |
tree | 0ae42177bac0a65a0b71c9c66d2591ef32215f21 | |
parent | 3c37026d43c47bec4710cbda286f4a17f416f5e6 (diff) |
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>
-rw-r--r-- | arch/mips/kernel/signal32.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c index e8c380dceb86..5e7d0fa02672 100644 --- a/arch/mips/kernel/signal32.c +++ b/arch/mips/kernel/signal32.c | |||
@@ -488,6 +488,7 @@ __attribute_used__ noinline static void | |||
488 | _sys32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) | 488 | _sys32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) |
489 | { | 489 | { |
490 | struct rt_sigframe32 *frame; | 490 | struct rt_sigframe32 *frame; |
491 | mm_segment_t old_fs; | ||
491 | sigset_t set; | 492 | sigset_t set; |
492 | stack_t st; | 493 | stack_t st; |
493 | s32 sp; | 494 | s32 sp; |
@@ -518,7 +519,10 @@ _sys32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) | |||
518 | 519 | ||
519 | /* It is more difficult to avoid calling this function than to | 520 | /* It is more difficult to avoid calling this function than to |
520 | call it and ignore errors. */ | 521 | call it and ignore errors. */ |
522 | old_fs = get_fs(); | ||
523 | set_fs (KERNEL_DS); | ||
521 | do_sigaltstack(&st, NULL, regs.regs[29]); | 524 | do_sigaltstack(&st, NULL, regs.regs[29]); |
525 | set_fs (old_fs); | ||
522 | 526 | ||
523 | /* | 527 | /* |
524 | * Don't let your children do this ... | 528 | * Don't let your children do this ... |