lkml.org 
[lkml]   [2009]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch 1/14] x86, ptrace: add arch_ptrace_report_exit
    On 03/27, Markus Metzger wrote:
    >
    > --- git-tip.orig/include/linux/ptrace.h 2009-03-23 10:45:30.000000000 +0100
    > +++ git-tip/include/linux/ptrace.h 2009-03-23 11:31:21.000000000 +0100
    > @@ -335,6 +335,23 @@ static inline void user_enable_block_ste
    > #define arch_ptrace_fork(child, clone_flags) do { } while (0)
    > #endif
    >
    > +#ifndef arch_ptrace_report_exit
    > +/**
    > + * arch_ptrace_report_exit - Do machine specific work for exiting ptraced tasks
    > + * @exit_code: current->exit_code value
    > + *
    > + * This is called early from do_exit() with no locks held after we notified the
    > + * ptracer.
    > + */
    > +#define arch_ptrace_report_exit(exit_code) do { } while (0)
    > +#endif
    > +
    > +static inline void ptrace_report_exit(long *exit_code)
    > +{
    > + ptrace_event(PT_TRACE_EXIT, PTRACE_EVENT_EXIT, *exit_code);
    > + arch_ptrace_report_exit(*exit_code);
    > +}
    > +
    > extern int task_current_syscall(struct task_struct *target, long *callno,
    > unsigned long args[6], unsigned int maxargs,
    > unsigned long *sp, unsigned long *pc);
    > Index: git-tip/include/linux/tracehook.h
    > ===================================================================
    > --- git-tip.orig/include/linux/tracehook.h 2009-03-23 10:45:30.000000000 +0100
    > +++ git-tip/include/linux/tracehook.h 2009-03-23 11:31:21.000000000 +0100
    > @@ -211,7 +211,7 @@ static inline void tracehook_report_exec
    > */
    > static inline void tracehook_report_exit(long *exit_code)
    > {
    > - ptrace_event(PT_TRACE_EXIT, PTRACE_EVENT_EXIT, *exit_code);
    > + ptrace_report_exit(exit_code);
    > }

    This needs Rolan'd review.

    But I'd say this has nothing to do with tracehooks. And why do
    you pass *exit_code to arch_ptrace_report_exit() ?

    Just add arch_ptrace_report_exit(void) into do_exit() ?

    From the 3/14 patch:

    #define arch_ptrace_report_exit(code) x86_ptrace_report_exit(code)

    void x86_ptrace_report_exit(long exit_code)
    {
    ptrace_bts_exit();
    }

    This is a bit strange. Why do we need 2 functions, ptrace_bts_exit() and
    x86_ptrace_report_exit() which just calls the first one?

    Oleg.



    \
     
     \ /
      Last update: 2009-03-27 15:25    [W:0.024 / U:0.724 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site