* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®