summaryrefslogtreecommitdiff
path: root/arch/arm/kernel/sys_arm.c
diff options
context:
space:
mode:
authorRussell King <rmk@flint.arm.linux.org.uk>2002-09-29 19:12:05 +0100
committerRussell King <rmk@flint.arm.linux.org.uk>2002-09-29 19:12:05 +0100
commit3a8fb2567869eb19457ccfc8aac837355f005f2e (patch)
tree3b3e9d6e164141e45c0cac8fcc6e539af3128b00 /arch/arm/kernel/sys_arm.c
parent82e48db036cf5fc2323bd6c5eb68158750487ed8 (diff)
[ARM] 2.5.34 update
Update for changes in mainline 2.5.3[01234].
Diffstat (limited to 'arch/arm/kernel/sys_arm.c')
-rw-r--r--arch/arm/kernel/sys_arm.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/arch/arm/kernel/sys_arm.c b/arch/arm/kernel/sys_arm.c
index 34713adaf4dc..47f4ff685a19 100644
--- a/arch/arm/kernel/sys_arm.c
+++ b/arch/arm/kernel/sys_arm.c
@@ -239,7 +239,7 @@ asmlinkage int sys_ipc (uint call, int first, int second, int third, void *ptr,
asmlinkage int sys_fork(struct pt_regs *regs)
{
struct task_struct *p;
- p = do_fork(SIGCHLD, regs->ARM_sp, regs, 0);
+ p = do_fork(SIGCHLD, regs->ARM_sp, regs, 0, NULL);
return IS_ERR(p) ? PTR_ERR(p) : p->pid;
}
@@ -249,16 +249,25 @@ asmlinkage int sys_fork(struct pt_regs *regs)
asmlinkage int sys_clone(unsigned long clone_flags, unsigned long newsp, struct pt_regs *regs)
{
struct task_struct *p;
+
+ /*
+ * We don't support SETTID / CLEARTID
+ */
+ if (clone_flags & (CLONE_SETTID | CLONE_CLEARTID))
+ return -EINVAL;
+
if (!newsp)
newsp = regs->ARM_sp;
- p = do_fork(clone_flags & ~CLONE_IDLETASK, newsp, regs, 0);
+
+ p = do_fork(clone_flags & ~CLONE_IDLETASK, newsp, regs, 0, NULL);
+
return IS_ERR(p) ? PTR_ERR(p) : p->pid;
}
asmlinkage int sys_vfork(struct pt_regs *regs)
{
struct task_struct *p;
- p = do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs->ARM_sp, regs, 0);
+ p = do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs->ARM_sp, regs, 0, NULL);
return IS_ERR(p) ? PTR_ERR(p) : p->pid;
}