diff options
author | Arnd Bergmann <arnd@arndb.de> | 2009-06-19 11:31:54 +0200 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2009-06-19 14:10:33 +0200 |
commit | f673c032ed13ed8f3fda5922c2190da2892398bc (patch) | |
tree | 8e1145ed21188c77ffdfacba2b22a529c8ddb938 /arch/score/kernel/sys_score.c | |
parent | 78229db4c4f78f27ecf772fe7489a70530ba9862 (diff) |
score: add generic sys_call_table
This adds back a sys_call_table to the score architecture, which
got lost in the conversion to the generic unistd.h file.
It's rather worrying that the code got submitted without a
system call table, which evidently means that it got zero
testing.
Since the system call table has a different layout from the old
one (which was modeled after the mips-o32 one), I also try to
fix the entry.S path to use it. In the modified calling conventions,
all system call arguments are passed as registers r4 through r9,
instead of r4 through r7 plus stack for the fifth and sixth argument.
This matches what other architectures to when they normally pass
arguments on the stack.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/score/kernel/sys_score.c')
-rw-r--r-- | arch/score/kernel/sys_score.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/arch/score/kernel/sys_score.c b/arch/score/kernel/sys_score.c index 68655f4cbce9..331886104325 100644 --- a/arch/score/kernel/sys_score.c +++ b/arch/score/kernel/sys_score.c @@ -75,14 +75,7 @@ int score_clone(struct pt_regs *regs) if (!newsp) newsp = regs->regs[0]; parent_tidptr = (int __user *)regs->regs[6]; - - child_tidptr = NULL; - if (clone_flags & (CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID)) { - int __user *__user *usp = (int __user *__user *)regs->regs[0]; - - if (get_user(child_tidptr, &usp[4])) - return -EFAULT; - } + child_tidptr = (int __user *)regs->regs[8]; return do_fork(clone_flags, newsp, regs, 0, parent_tidptr, child_tidptr); |