diff options
author | Mark Brown <broonie@linaro.org> | 2014-07-01 11:20:33 +0100 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-07-01 11:20:33 +0100 |
commit | 471dd6b43f72f8ee00d3d1a1281d5aed9d4991ca (patch) | |
tree | c431b236425ba493a374f33af9e683d091baf035 /kernel/fork.c | |
parent | 91521ab3c9a37895de12751f1e92af4cbdd57531 (diff) | |
parent | d01bd6fdb3be2f6cec1d5918e20175adca97615b (diff) |
Merge branch 'linux-linaro-lsk' into linux-linaro-lsk-android
Diffstat (limited to 'kernel/fork.c')
-rw-r--r-- | kernel/fork.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 0aa1bb5c8d6e..9ace35986f7e 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1624,10 +1624,12 @@ long do_fork(unsigned long clone_flags, */ if (!IS_ERR(p)) { struct completion vfork; + struct pid *pid; trace_sched_process_fork(current, p); - nr = task_pid_vnr(p); + pid = get_task_pid(p, PIDTYPE_PID); + nr = pid_vnr(pid); if (clone_flags & CLONE_PARENT_SETTID) put_user(nr, parent_tidptr); @@ -1642,12 +1644,14 @@ long do_fork(unsigned long clone_flags, /* forking complete and child started to run, tell ptracer */ if (unlikely(trace)) - ptrace_event(trace, nr); + ptrace_event_pid(trace, pid); if (clone_flags & CLONE_VFORK) { if (!wait_for_vfork_done(p, &vfork)) - ptrace_event(PTRACE_EVENT_VFORK_DONE, nr); + ptrace_event_pid(PTRACE_EVENT_VFORK_DONE, pid); } + + put_pid(pid); } else { nr = PTR_ERR(p); } |