* [patch 10/14] syslets: x86, mark async unsafe syscalls
@ 2007-02-15 16:52 Ingo Molnar
0 siblings, 0 replies; only message in thread
From: Ingo Molnar @ 2007-02-15 16:52 UTC (permalink / raw)
To: linux-kernel
Cc: Linus Torvalds, Arjan van de Ven, Christoph Hellwig,
Andrew Morton, Alan Cox, Ulrich Drepper, Zach Brown,
Evgeniy Polyakov, David S. Miller, Suparna Bhattacharya,
Davide Libenzi, Thomas Gleixner
From: Ingo Molnar <mingo@elte.hu>
mark clone() and fork() as not available for async execution.
Both need an intact user context beneath them to work.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
---
arch/i386/kernel/process.c | 6 ++++++
1 file changed, 6 insertions(+)
Index: linux/arch/i386/kernel/process.c
===================================================================
--- linux.orig/arch/i386/kernel/process.c
+++ linux/arch/i386/kernel/process.c
@@ -731,6 +731,9 @@ struct task_struct fastcall * __switch_t
asmlinkage int sys_fork(struct pt_regs regs)
{
+ if (async_syscall(current))
+ return -ENOSYS;
+
return do_fork(SIGCHLD, regs.esp, ®s, 0, NULL, NULL);
}
@@ -740,6 +743,9 @@ asmlinkage int sys_clone(struct pt_regs
unsigned long newsp;
int __user *parent_tidptr, *child_tidptr;
+ if (async_syscall(current))
+ return -ENOSYS;
+
clone_flags = regs.ebx;
newsp = regs.ecx;
parent_tidptr = (int __user *)regs.edx;
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2007-02-15 16:57 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-15 16:52 [patch 10/14] syslets: x86, mark async unsafe syscalls Ingo Molnar
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.