• T
    ptrace: introduce ptrace_event_enabled() and simplify ptrace_event() and tracehook_prepare_clone() · 643ad838
    Tejun Heo 提交于
    This patch implements ptrace_event_enabled() which tests whether a
    given PTRACE_EVENT_* is enabled and use it to simplify ptrace_event()
    and tracehook_prepare_clone().
    
    PT_EVENT_FLAG() macro is added which calculates PT_TRACE_* flag from
    PTRACE_EVENT_*.  This is used to define PT_TRACE_* flags and by
    ptrace_event_enabled() to find the matching flag.
    
    This is used to make ptrace_event() and tracehook_prepare_clone()
    simpler.
    
    * ptrace_event() callers were responsible for providing mask to test
      whether the event was enabled.  This patch implements
      ptrace_event_enabled() and make ptrace_event() drop @mask and
      determine whether the event is enabled from @event.  Note that
      @event is constant and this conversion doesn't add runtime overhead.
    
      All conversions except tracehook_report_clone_complete() are
      trivial.  tracehook_report_clone_complete() used to use 0 for @mask
      (always enabled) but now tests whether the specified event is
      enabled.  This doesn't cause any behavior difference as it's
      guaranteed that the event specified by @trace is enabled.
    
    * tracehook_prepare_clone() now only determines which event is
      applicable and use ptrace_event_enabled() for enable test.
    
    This doesn't introduce any behavior change.
    Signed-off-by: NTejun Heo <tj@kernel.org>
    Signed-off-by: NOleg Nesterov <oleg@redhat.com>
    643ad838
tracehook.h 18.0 KB