Re: [PATCH] tracing: always define trace_{irq,preempt}_{enable_disable}

From: Joel Fernandes
Date: Thu Oct 19 2017 - 14:42:43 EST


Hi,

On Thu, Oct 19, 2017 at 1:32 AM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> We get a build error in the irqsoff tracer in some configurations:
>
> kernel/trace/trace_irqsoff.c: In function 'trace_preempt_on':
> kernel/trace/trace_irqsoff.c:855:2: error: implicit declaration of function 'trace_preempt_enable_rcuidle'; did you mean 'trace_irq_enable_rcuidle'? [-Werror=implicit-function-declaration]
> trace_preempt_enable_rcuidle(a0, a1);
>
> The problem is that trace_preempt_enable_rcuidle() has different
> definition based on multiple Kconfig symbols, but not all combinations
> have a valid definition.
>
> This changes the conditions so that we always get exactly one
> definition of each of the four tracing macros. I have not tried
> to verify that these definitions are sensible, but now we
> can build all randconfig combinations again.
>
> Fixes: d59158162e03 ("tracing: Add support for preempt and irq enable/disable events")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>


Yes this build condition is possible. Thanks for finding it. I agree
with this patch, I will be simplifying this much more once I integrate
PROVE_LOCKING to use tracepoint probes but this is Ok with me for now.

Acked-by: Joel Fernandes <joelaf@xxxxxxxxxx>

thanks!

- Joel

<snip>