lkml.org 
[lkml]   [2010]   [Feb]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 8/14] microblaze: use generic ptrace_resume code
    Use the generic ptrace_resume code for PTRACE_SYSCALL, PTRACE_CONT and
    PTRACE_KILL. This also makes PTRACE_SINGLESTEP return -EIO while it
    previously succeeded despite not actually causing any kind of single
    stepping.

    Also the TIF_SYSCALL_TRACE thread flag is now cleared on PTRACE_KILL
    which it previously wasn't which is consistent with all architectures
    using the modern ptrace code.

    Signed-off-by: Christoph Hellwig <hch@lst.de>

    Index: linux-2.6/arch/microblaze/kernel/ptrace.c
    ===================================================================
    --- linux-2.6.orig/arch/microblaze/kernel/ptrace.c 2010-02-02 11:23:56.002003861 +0100
    +++ linux-2.6/arch/microblaze/kernel/ptrace.c 2010-02-02 19:20:16.997254566 +0100
    @@ -110,43 +110,6 @@ long arch_ptrace(struct task_struct *chi
    if (rval == 0 && request == PTRACE_PEEKUSR)
    rval = put_user(val, (unsigned long *)data);
    break;
    - /* Continue and stop at next (return from) syscall */
    - case PTRACE_SYSCALL:
    - pr_debug("PTRACE_SYSCALL\n");
    - case PTRACE_SINGLESTEP:
    - pr_debug("PTRACE_SINGLESTEP\n");
    - /* Restart after a signal. */
    - case PTRACE_CONT:
    - pr_debug("PTRACE_CONT\n");
    - rval = -EIO;
    - if (!valid_signal(data))
    - break;
    -
    - if (request == PTRACE_SYSCALL)
    - set_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
    - else
    - clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
    -
    - child->exit_code = data;
    - pr_debug("wakeup_process\n");
    - wake_up_process(child);
    - rval = 0;
    - break;
    -
    - /*
    - * make the child exit. Best I can do is send it a sigkill.
    - * perhaps it should be put in the status that it wants to
    - * exit.
    - */
    - case PTRACE_KILL:
    - pr_debug("PTRACE_KILL\n");
    - rval = 0;
    - if (child->exit_state == EXIT_ZOMBIE) /* already dead */
    - break;
    - child->exit_code = SIGKILL;
    - wake_up_process(child);
    - break;
    -
    default:
    rval = ptrace_request(child, request, addr, data);
    }

    \
     
     \ /
      Last update: 2010-02-02 20:03    [W:0.025 / U:31.452 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site