diff options
Diffstat (limited to 'arch/mips/kernel/linux32.c')
-rw-r--r-- | arch/mips/kernel/linux32.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c index e8e886dd52d6..330cf84d21fe 100644 --- a/arch/mips/kernel/linux32.c +++ b/arch/mips/kernel/linux32.c | |||
@@ -1468,3 +1468,30 @@ sysn32_rt_sigtimedwait(const sigset_t __user *uthese, | |||
1468 | } | 1468 | } |
1469 | return sys_rt_sigtimedwait(uthese, uinfo, uts, sigsetsize); | 1469 | return sys_rt_sigtimedwait(uthese, uinfo, uts, sigsetsize); |
1470 | } | 1470 | } |
1471 | |||
1472 | save_static_function(sys32_clone); | ||
1473 | __attribute_used__ noinline static int | ||
1474 | _sys32_clone(nabi_no_regargs struct pt_regs regs) | ||
1475 | { | ||
1476 | unsigned long clone_flags; | ||
1477 | unsigned long newsp; | ||
1478 | int __user *parent_tidptr, *child_tidptr; | ||
1479 | |||
1480 | clone_flags = regs.regs[4]; | ||
1481 | newsp = regs.regs[5]; | ||
1482 | if (!newsp) | ||
1483 | newsp = regs.regs[29]; | ||
1484 | parent_tidptr = (int *) regs.regs[6]; | ||
1485 | |||
1486 | /* Use __dummy4 instead of getting it off the stack, so that | ||
1487 | syscall() works. */ | ||
1488 | child_tidptr = (int __user *) __dummy4; | ||
1489 | return do_fork(clone_flags, newsp, ®s, 0, | ||
1490 | parent_tidptr, child_tidptr); | ||
1491 | } | ||
1492 | |||
1493 | extern asmlinkage void sys_set_thread_area(u32 addr); | ||
1494 | asmlinkage void sys32_set_thread_area(u32 addr) | ||
1495 | { | ||
1496 | sys_set_thread_area(AA(addr)); | ||
1497 | } | ||