[lkml]   [2010]   [Nov]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH 14/14] ptrace: remove the extra wake_up_process() from ptrace_detach()
    This wake_up_process() has a turbulent history.  This is a remnant
    from ancient ptrace implementation and patently wrong. Commit
    95a3540d (ptrace_detach: the wrong wakeup breaks the ERESTARTxxx
    logic) removed it but the change was reverted later by commit edaba2c5
    (ptrace: revert "ptrace_detach: the wrong wakeup breaks the
    ERESTARTxxx logic ") citing compatibility breakage and general
    brokeness of the whole group stop / ptrace interaction.

    Digging through the mailing archives, the compatibility breakage
    doesn't seem to be critical in the sense that the behavior isn't well
    defined or reliable to begin with and it seems to have been agreed to
    remove the wakeup with proper cleanup of the whole thing.

    Now that the group stop and its interaction with ptrace are cleaned up
    and well defined, it's high time to finally kill this silliness.

    Signed-off-by: Tejun Heo <>
    Cc: Oleg Nesterov <>
    Cc: Roland McGrath <>
    kernel/ptrace.c | 2 --
    1 files changed, 0 insertions(+), 2 deletions(-)

    diff --git a/kernel/ptrace.c b/kernel/ptrace.c
    index a6c92ac..63c6de6 100644
    --- a/kernel/ptrace.c
    +++ b/kernel/ptrace.c
    @@ -357,8 +357,6 @@ int ptrace_detach(struct task_struct *child, unsigned int data)
    if (child->ptrace) {
    child->exit_code = data;
    dead = __ptrace_detach(current, child);
    - if (!child->exit_state)
    - wake_up_process(child);


     \ /
      Last update: 2010-11-26 11:53    [W:0.021 / U:5.928 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site