|
@@ -1409,23 +1409,6 @@ long do_fork(unsigned long clone_flags,
|
|
return -EPERM;
|
|
return -EPERM;
|
|
}
|
|
}
|
|
|
|
|
|
- /*
|
|
|
|
- * We hope to recycle these flags after 2.6.26
|
|
|
|
- */
|
|
|
|
- if (unlikely(clone_flags & CLONE_STOPPED)) {
|
|
|
|
- static int __read_mostly count = 100;
|
|
|
|
-
|
|
|
|
- if (count > 0 && printk_ratelimit()) {
|
|
|
|
- char comm[TASK_COMM_LEN];
|
|
|
|
-
|
|
|
|
- count--;
|
|
|
|
- printk(KERN_INFO "fork(): process `%s' used deprecated "
|
|
|
|
- "clone flags 0x%lx\n",
|
|
|
|
- get_task_comm(comm, current),
|
|
|
|
- clone_flags & CLONE_STOPPED);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
* When called from kernel_thread, don't do user tracing stuff.
|
|
* When called from kernel_thread, don't do user tracing stuff.
|
|
*/
|
|
*/
|
|
@@ -1464,16 +1447,7 @@ long do_fork(unsigned long clone_flags,
|
|
*/
|
|
*/
|
|
p->flags &= ~PF_STARTING;
|
|
p->flags &= ~PF_STARTING;
|
|
|
|
|
|
- if (unlikely(clone_flags & CLONE_STOPPED)) {
|
|
|
|
- /*
|
|
|
|
- * We'll start up with an immediate SIGSTOP.
|
|
|
|
- */
|
|
|
|
- sigaddset(&p->pending.signal, SIGSTOP);
|
|
|
|
- set_tsk_thread_flag(p, TIF_SIGPENDING);
|
|
|
|
- __set_task_state(p, TASK_STOPPED);
|
|
|
|
- } else {
|
|
|
|
- wake_up_new_task(p, clone_flags);
|
|
|
|
- }
|
|
|
|
|
|
+ wake_up_new_task(p, clone_flags);
|
|
|
|
|
|
tracehook_report_clone_complete(trace, regs,
|
|
tracehook_report_clone_complete(trace, regs,
|
|
clone_flags, nr, p);
|
|
clone_flags, nr, p);
|