mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-27 09:02:06 +00:00
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>
This commit is contained in:
parent
3c37026d43
commit
1fcf1cc742
1 changed files with 4 additions and 0 deletions
|
@ -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)
|
||||||
|
|
||||||
/* 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 ...
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue