X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=kernel%2Ffork.c;h=45da005c9961b9f950b3e7d872aefed78cbabf69;hb=c7d489fa670f9d54dd05b46d81397ec6df208e60;hp=a17621c6cd4272182a78083e736c5972c741ed7a;hpb=895be5b31e5175bef575008aadb4f0a27b850daa;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git diff --git a/kernel/fork.c b/kernel/fork.c index a17621c..45da005c 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1604,10 +1604,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); @@ -1622,12 +1624,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); }