On 2017/06/06 11:06AM, Shuah Khan wrote: > On 05/16/2017 12:33 PM, Steven Rostedt wrote: > > On Tue, 16 May 2017 23:14:23 +0530 > > "Naveen N. Rao" <naveen.n.rao@xxxxxxxxxxxxxxxxxx> wrote: > > > >> On 2017/05/16 07:31PM, Naveen N. Rao wrote: > >>> On 2017/05/15 10:20PM, Steven Rostedt wrote: > >>>> On Sun, 14 May 2017 01:01:02 +0530 > >>>> "Naveen N. Rao" <naveen.n.rao@xxxxxxxxxxxxxxxxxx> wrote: > >>>> > >>> > >>> [snip] > >>> > >>>>> diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c > >>>>> index c4536c449021..3f2aed4ad1ed 100644 > >>>>> --- a/kernel/trace/trace.c > >>>>> +++ b/kernel/trace/trace.c > >>>>> @@ -7550,6 +7550,7 @@ static int instance_rmdir(const char *name) > >>>>> } > >>>>> > >>>>> tracing_set_nop(tr); > >>>>> + clear_ftrace_function_probes(tr); > >>>>> event_trace_del_tracer(tr); > >>>>> ftrace_clear_pids(tr); > >>>>> ftrace_destroy_function_files(tr); > >>>>> diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h > >>>>> index 291a1bca5748..98e0845f7235 100644 > >>>>> --- a/kernel/trace/trace.h > >>>>> +++ b/kernel/trace/trace.h > >>>>> @@ -980,6 +980,7 @@ register_ftrace_function_probe(char *glob, struct trace_array *tr, > >>>>> extern int > >>>>> unregister_ftrace_function_probe_func(char *glob, struct trace_array *tr, > >>>>> struct ftrace_probe_ops *ops); > >>>>> +extern void clear_ftrace_function_probes(struct trace_array *tr); > >>>> > >>>> This needs to have a stub function when CONFIG_DYNAMIC_FTRACE is not > >>>> defined. Otherwise we have: > >>>> > >>>> kernel/trace/trace.c:7553:2: error: implicit declaration of function 'clear_ftrace_function_probes' [-Werror=implicit-function-declaration] > >>>> clear_ftrace_function_probes(tr); > >>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ > >> > >> The prototype in trace.h is actually guarded by: > >> #if defined(CONFIG_FUNCTION_TRACER) && defined(CONFIG_DYNAMIC_FTRACE) > >> > >> So, I will guard the call to clear_ftrace_function_probes() in trace.c > >> with the same. > >> > > > > No, the proper thing to do is to make a stub function in the else part > > of the #if that the prototype was declared in. > > > > static inline void clear_ftrace_function_probes(struct trace_array *tr) > > { > > } > > > > Please, lets limit the #ifdef ugliness from the code. > > > > -- Steve > > > > > > > Hi Steve, > > Are you good with this patch series. I am looking to see which > of these should go into 4.13-rc1 - please ack individual patches > that should be pulled into 4.13-rc1 Hi Shuah, I see that Steven has already sent v2 of this series to Linus, including the selftest patches: https://www.mail-archive.com/linux-kernel@xxxxxxxxxxxxxxx/msg1399833.html https://www.mail-archive.com/linux-kernel@xxxxxxxxxxxxxxx/msg1399832.html And I also noticed (after I came back from vacation) that Steven had fixed the #ifdef ugliness I had introduced.. Thanks, Naveen -- To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html