Loading include/linux/tracehook.h +12 −11 Original line number Original line Diff line number Diff line Loading @@ -244,7 +244,7 @@ static inline int tracehook_prepare_clone(unsigned clone_flags) * tracehook_finish_clone - new child created and being attached * tracehook_finish_clone - new child created and being attached * @child: new child task * @child: new child task * @clone_flags: %CLONE_* flags from clone/fork/vfork system call * @clone_flags: %CLONE_* flags from clone/fork/vfork system call * @trace: return value from tracehook_clone_prepare() * @trace: return value from tracehook_prepare_clone() * * * This is called immediately after adding @child to its parent's children list. * This is called immediately after adding @child to its parent's children list. * The @trace value is that returned by tracehook_prepare_clone(). * The @trace value is that returned by tracehook_prepare_clone(). Loading @@ -259,19 +259,20 @@ static inline void tracehook_finish_clone(struct task_struct *child, /** /** * tracehook_report_clone - in parent, new child is about to start running * tracehook_report_clone - in parent, new child is about to start running * @trace: return value from tracehook_clone_prepare() * @trace: return value from tracehook_prepare_clone() * @regs: parent's user register state * @regs: parent's user register state * @clone_flags: flags from parent's system call * @clone_flags: flags from parent's system call * @pid: new child's PID in the parent's namespace * @pid: new child's PID in the parent's namespace * @child: new child task * @child: new child task * * * Called after a child is set up, but before it has been started running. * Called after a child is set up, but before it has been started * The @trace value is that returned by tracehook_clone_prepare(). * running. @trace is the value returned by tracehook_prepare_clone(). * This is not a good place to block, because the child has not started yet. * This is not a good place to block, because the child has not started * Suspend the child here if desired, and block in tracehook_clone_complete(). * yet. Suspend the child here if desired, and then block in * This must prevent the child from self-reaping if tracehook_clone_complete() * tracehook_report_clone_complete(). This must prevent the child from * uses the @child pointer; otherwise it might have died and been released by * self-reaping if tracehook_report_clone_complete() uses the @child * the time tracehook_report_clone_complete() is called. * pointer; otherwise it might have died and been released by the time * tracehook_report_report_clone_complete() is called. * * * Called with no locks held, but the child cannot run until this returns. * Called with no locks held, but the child cannot run until this returns. */ */ Loading @@ -290,7 +291,7 @@ static inline void tracehook_report_clone(int trace, struct pt_regs *regs, /** /** * tracehook_report_clone_complete - new child is running * tracehook_report_clone_complete - new child is running * @trace: return value from tracehook_clone_prepare() * @trace: return value from tracehook_prepare_clone() * @regs: parent's user register state * @regs: parent's user register state * @clone_flags: flags from parent's system call * @clone_flags: flags from parent's system call * @pid: new child's PID in the parent's namespace * @pid: new child's PID in the parent's namespace Loading Loading @@ -347,7 +348,7 @@ static inline void tracehook_prepare_release_task(struct task_struct *task) } } /** /** * tracehook_finish_release_task - task is being reaped, clean up tracing * tracehook_finish_release_task - final tracing clean-up * @task: task in %EXIT_DEAD state * @task: task in %EXIT_DEAD state * * * This is called in release_task() when @task is being in the middle of * This is called in release_task() when @task is being in the middle of Loading Loading
include/linux/tracehook.h +12 −11 Original line number Original line Diff line number Diff line Loading @@ -244,7 +244,7 @@ static inline int tracehook_prepare_clone(unsigned clone_flags) * tracehook_finish_clone - new child created and being attached * tracehook_finish_clone - new child created and being attached * @child: new child task * @child: new child task * @clone_flags: %CLONE_* flags from clone/fork/vfork system call * @clone_flags: %CLONE_* flags from clone/fork/vfork system call * @trace: return value from tracehook_clone_prepare() * @trace: return value from tracehook_prepare_clone() * * * This is called immediately after adding @child to its parent's children list. * This is called immediately after adding @child to its parent's children list. * The @trace value is that returned by tracehook_prepare_clone(). * The @trace value is that returned by tracehook_prepare_clone(). Loading @@ -259,19 +259,20 @@ static inline void tracehook_finish_clone(struct task_struct *child, /** /** * tracehook_report_clone - in parent, new child is about to start running * tracehook_report_clone - in parent, new child is about to start running * @trace: return value from tracehook_clone_prepare() * @trace: return value from tracehook_prepare_clone() * @regs: parent's user register state * @regs: parent's user register state * @clone_flags: flags from parent's system call * @clone_flags: flags from parent's system call * @pid: new child's PID in the parent's namespace * @pid: new child's PID in the parent's namespace * @child: new child task * @child: new child task * * * Called after a child is set up, but before it has been started running. * Called after a child is set up, but before it has been started * The @trace value is that returned by tracehook_clone_prepare(). * running. @trace is the value returned by tracehook_prepare_clone(). * This is not a good place to block, because the child has not started yet. * This is not a good place to block, because the child has not started * Suspend the child here if desired, and block in tracehook_clone_complete(). * yet. Suspend the child here if desired, and then block in * This must prevent the child from self-reaping if tracehook_clone_complete() * tracehook_report_clone_complete(). This must prevent the child from * uses the @child pointer; otherwise it might have died and been released by * self-reaping if tracehook_report_clone_complete() uses the @child * the time tracehook_report_clone_complete() is called. * pointer; otherwise it might have died and been released by the time * tracehook_report_report_clone_complete() is called. * * * Called with no locks held, but the child cannot run until this returns. * Called with no locks held, but the child cannot run until this returns. */ */ Loading @@ -290,7 +291,7 @@ static inline void tracehook_report_clone(int trace, struct pt_regs *regs, /** /** * tracehook_report_clone_complete - new child is running * tracehook_report_clone_complete - new child is running * @trace: return value from tracehook_clone_prepare() * @trace: return value from tracehook_prepare_clone() * @regs: parent's user register state * @regs: parent's user register state * @clone_flags: flags from parent's system call * @clone_flags: flags from parent's system call * @pid: new child's PID in the parent's namespace * @pid: new child's PID in the parent's namespace Loading Loading @@ -347,7 +348,7 @@ static inline void tracehook_prepare_release_task(struct task_struct *task) } } /** /** * tracehook_finish_release_task - task is being reaped, clean up tracing * tracehook_finish_release_task - final tracing clean-up * @task: task in %EXIT_DEAD state * @task: task in %EXIT_DEAD state * * * This is called in release_task() when @task is being in the middle of * This is called in release_task() when @task is being in the middle of Loading