diff mbox series

[v3,1/1] tracing: Fix compile error in trace_array calls when TRACING is disabled

Message ID 20220907233308.4153-2-aeasi@marvell.com (mailing list archive)
State Accepted
Headers show
Series Tracing: Compile error with qla2xxx | expand

Commit Message

Arun Easi Sept. 7, 2022, 11:33 p.m. UTC
Fix this compilation error seen when CONFIG_TRACING is not enabled:

drivers/scsi/qla2xxx/qla_os.c: In function 'qla_trace_init':
drivers/scsi/qla2xxx/qla_os.c:2854:25: error: implicit declaration of function
'trace_array_get_by_name'; did you mean 'trace_array_set_clr_event'?
[-Werror=implicit-function-declaration]
 2854 |         qla_trc_array = trace_array_get_by_name("qla2xxx");
      |                         ^~~~~~~~~~~~~~~~~~~~~~~
      |                         trace_array_set_clr_event

drivers/scsi/qla2xxx/qla_os.c: In function 'qla_trace_uninit':
drivers/scsi/qla2xxx/qla_os.c:2869:9: error: implicit declaration of function
'trace_array_put' [-Werror=implicit-function-declaration]
 2869 |         trace_array_put(qla_trc_array);
      |         ^~~~~~~~~~~~~~~

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Arun Easi <aeasi@marvell.com>
---
 include/linux/trace.h | 36 ++++++++++++++++++++++++++++++++++--
 1 file changed, 34 insertions(+), 2 deletions(-)

Comments

Bart Van Assche Sept. 8, 2022, 4:55 p.m. UTC | #1
On 9/7/22 16:33, Arun Easi wrote:
> diff --git a/include/linux/trace.h b/include/linux/trace.h
> index bf16961..b5e16e4 100644
> --- a/include/linux/trace.h
> +++ b/include/linux/trace.h
> @@ -2,8 +2,6 @@
>   #ifndef _LINUX_TRACE_H
>   #define _LINUX_TRACE_H
>   
> -#ifdef CONFIG_TRACING
> -
>   #define TRACE_EXPORT_FUNCTION	BIT(0)
>   #define TRACE_EXPORT_EVENT	BIT(1)
>   #define TRACE_EXPORT_MARKER	BIT(2)
> @@ -28,6 +26,8 @@ struct trace_export {
>   	int flags;
>   };
>   
> +#ifdef CONFIG_TRACING
> +
>   int register_ftrace_export(struct trace_export *export);
>   int unregister_ftrace_export(struct trace_export *export);
>   
> @@ -48,6 +48,38 @@ void osnoise_arch_unregister(void);
>   void osnoise_trace_irq_entry(int id);
>   void osnoise_trace_irq_exit(int id, const char *desc);
>   
> +#else /* CONFIG_TRACING */
> +static inline int register_ftrace_export(struct trace_export *export)
> +{
> +	return -EINVAL;
> +}
> +static inline int unregister_ftrace_export(struct trace_export *export)
> +{
> +	return 0;
> +}
> +static inline void trace_printk_init_buffers(void)
> +{
> +}
> +static inline int trace_array_printk(struct trace_array *tr, unsigned long ip,
> +				     const char *fmt, ...)
> +{
> +	return 0;
> +}
> +static inline int trace_array_init_printk(struct trace_array *tr)
> +{
> +	return -EINVAL;
> +}
> +static inline void trace_array_put(struct trace_array *tr)
> +{
> +}
> +static inline struct trace_array *trace_array_get_by_name(const char *name)
> +{
> +	return NULL;
> +}
> +static inline int trace_array_destroy(struct trace_array *tr)
> +{
> +	return 0;
> +}
>   #endif	/* CONFIG_TRACING */
>   
>   #endif	/* _LINUX_TRACE_H */

Thanks for having addressed my feedback. The above looks good to me. 
However, I'm not very familiar with the tracing framework so I will 
leave it to others to formally review this patch.

Thanks,

Bart.
Arun Easi Sept. 8, 2022, 7:12 p.m. UTC | #2
On Thu, 8 Sep 2022, 9:55am, Bart Van Assche wrote:

> 
> ----------------------------------------------------------------------
> On 9/7/22 16:33, Arun Easi wrote:
> > diff --git a/include/linux/trace.h b/include/linux/trace.h
> > index bf16961..b5e16e4 100644
> > --- a/include/linux/trace.h
> > +++ b/include/linux/trace.h
> > @@ -2,8 +2,6 @@
> >   #ifndef _LINUX_TRACE_H
> >   #define _LINUX_TRACE_H
> >   -#ifdef CONFIG_TRACING
> > -
> >   #define TRACE_EXPORT_FUNCTION	BIT(0)
> >   #define TRACE_EXPORT_EVENT	BIT(1)
> >   #define TRACE_EXPORT_MARKER	BIT(2)
> > @@ -28,6 +26,8 @@ struct trace_export {
> >   	int flags;
> >   };
> >   +#ifdef CONFIG_TRACING
> > +
> >   int register_ftrace_export(struct trace_export *export);
> >   int unregister_ftrace_export(struct trace_export *export);
> >   @@ -48,6 +48,38 @@ void osnoise_arch_unregister(void);
> >   void osnoise_trace_irq_entry(int id);
> >   void osnoise_trace_irq_exit(int id, const char *desc);
> >   +#else /* CONFIG_TRACING */
> > +static inline int register_ftrace_export(struct trace_export *export)
> > +{
> > +	return -EINVAL;
> > +}
> > +static inline int unregister_ftrace_export(struct trace_export *export)
> > +{
> > +	return 0;
> > +}
> > +static inline void trace_printk_init_buffers(void)
> > +{
> > +}
> > +static inline int trace_array_printk(struct trace_array *tr, unsigned long
> > ip,
> > +				     const char *fmt, ...)
> > +{
> > +	return 0;
> > +}
> > +static inline int trace_array_init_printk(struct trace_array *tr)
> > +{
> > +	return -EINVAL;
> > +}
> > +static inline void trace_array_put(struct trace_array *tr)
> > +{
> > +}
> > +static inline struct trace_array *trace_array_get_by_name(const char *name)
> > +{
> > +	return NULL;
> > +}
> > +static inline int trace_array_destroy(struct trace_array *tr)
> > +{
> > +	return 0;
> > +}
> >   #endif	/* CONFIG_TRACING */
> >     #endif	/* _LINUX_TRACE_H */
> 
> Thanks for having addressed my feedback. The above looks good to me. However,
> I'm not very familiar with the tracing framework so I will leave it to others
> to formally review this patch.
> 

Thanks for the review and suggestion of the clang-format command line, 
Bart. That is a useful one to remember.

Steve, does this look ok? If so, your approval is appreciated, as this is 
a build blocker fix.

Regards,
-Arun
Martin K. Petersen Sept. 16, 2022, 1:32 a.m. UTC | #3
Steven,

Can you please review Arun's patch?

> Fix this compilation error seen when CONFIG_TRACING is not enabled:
>
> drivers/scsi/qla2xxx/qla_os.c: In function 'qla_trace_init':
> drivers/scsi/qla2xxx/qla_os.c:2854:25: error: implicit declaration of function
> 'trace_array_get_by_name'; did you mean 'trace_array_set_clr_event'?
> [-Werror=implicit-function-declaration]
>  2854 |         qla_trc_array = trace_array_get_by_name("qla2xxx");
>       |                         ^~~~~~~~~~~~~~~~~~~~~~~
>       |                         trace_array_set_clr_event
>
> drivers/scsi/qla2xxx/qla_os.c: In function 'qla_trace_uninit':
> drivers/scsi/qla2xxx/qla_os.c:2869:9: error: implicit declaration of function
> 'trace_array_put' [-Werror=implicit-function-declaration]
>  2869 |         trace_array_put(qla_trc_array);
>       |         ^~~~~~~~~~~~~~~
>
Arun Easi Sept. 16, 2022, 9:22 p.m. UTC | #4
Since Steve is travelling, trying Ingo, who is a co-maintainer of trace 
stuff.

Hi Ingo,

If you could review/approve the patch, that would be very helpful, as this 
is a build breaker fix.

Please see the link below for more context:

Most recent (v3) patch posting:
https://lore.kernel.org/linux-scsi/20220907233308.4153-2-aeasi@marvell.com/

Steve suggesting to take the patch via SCSI tree:
https://lore.kernel.org/linux-scsi/20220906174140.41b46a5f@gandalf.local.home/

Regards,
-Arun

On Thu, 15 Sep 2022, 6:32pm, Martin K. Petersen wrote:

> External Email
> 
> ----------------------------------------------------------------------
> 
> Steven,
> 
> Can you please review Arun's patch?
> 
> > Fix this compilation error seen when CONFIG_TRACING is not enabled:
> >
> > drivers/scsi/qla2xxx/qla_os.c: In function 'qla_trace_init':
> > drivers/scsi/qla2xxx/qla_os.c:2854:25: error: implicit declaration of function
> > 'trace_array_get_by_name'; did you mean 'trace_array_set_clr_event'?
> > [-Werror=implicit-function-declaration]
> >  2854 |         qla_trc_array = trace_array_get_by_name("qla2xxx");
> >       |                         ^~~~~~~~~~~~~~~~~~~~~~~
> >       |                         trace_array_set_clr_event
> >
> > drivers/scsi/qla2xxx/qla_os.c: In function 'qla_trace_uninit':
> > drivers/scsi/qla2xxx/qla_os.c:2869:9: error: implicit declaration of function
> > 'trace_array_put' [-Werror=implicit-function-declaration]
> >  2869 |         trace_array_put(qla_trc_array);
> >       |         ^~~~~~~~~~~~~~~
> >
> 
>
Steven Rostedt Sept. 22, 2022, 9:02 p.m. UTC | #5
On Thu, 15 Sep 2022 21:32:59 -0400
"Martin K. Petersen" <martin.petersen@oracle.com> wrote:

> Steven,
> 
> Can you please review Arun's patch?

Sorry, was busy running a conference ;-)

> 
> > Fix this compilation error seen when CONFIG_TRACING is not enabled:
> >
> > drivers/scsi/qla2xxx/qla_os.c: In function 'qla_trace_init':
> > drivers/scsi/qla2xxx/qla_os.c:2854:25: error: implicit declaration of function
> > 'trace_array_get_by_name'; did you mean 'trace_array_set_clr_event'?
> > [-Werror=implicit-function-declaration]
> >  2854 |         qla_trc_array = trace_array_get_by_name("qla2xxx");
> >       |                         ^~~~~~~~~~~~~~~~~~~~~~~
> >       |                         trace_array_set_clr_event
> >
> > drivers/scsi/qla2xxx/qla_os.c: In function 'qla_trace_uninit':
> > drivers/scsi/qla2xxx/qla_os.c:2869:9: error: implicit declaration of function
> > 'trace_array_put' [-Werror=implicit-function-declaration]
> >  2869 |         trace_array_put(qla_trc_array);
> >       |         ^~~~~~~~~~~~~~~
> >  
> 

The patch looks good to me.

Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>

-- Steve
Arun Easi Sept. 22, 2022, 10:34 p.m. UTC | #6
Thanks for the review, Steve.

Regards,
-Arun

On Thu, 22 Sep 2022, 2:02pm, Steven Rostedt wrote:

> External Email
> 
> ----------------------------------------------------------------------
> On Thu, 15 Sep 2022 21:32:59 -0400
> "Martin K. Petersen" <martin.petersen@oracle.com> wrote:
> 
> > Steven,
> > 
> > Can you please review Arun's patch?
> 
> Sorry, was busy running a conference ;-)
> 
> > 
> > > Fix this compilation error seen when CONFIG_TRACING is not enabled:
> > >
> > > drivers/scsi/qla2xxx/qla_os.c: In function 'qla_trace_init':
> > > drivers/scsi/qla2xxx/qla_os.c:2854:25: error: implicit declaration of function
> > > 'trace_array_get_by_name'; did you mean 'trace_array_set_clr_event'?
> > > [-Werror=implicit-function-declaration]
> > >  2854 |         qla_trc_array = trace_array_get_by_name("qla2xxx");
> > >       |                         ^~~~~~~~~~~~~~~~~~~~~~~
> > >       |                         trace_array_set_clr_event
> > >
> > > drivers/scsi/qla2xxx/qla_os.c: In function 'qla_trace_uninit':
> > > drivers/scsi/qla2xxx/qla_os.c:2869:9: error: implicit declaration of function
> > > 'trace_array_put' [-Werror=implicit-function-declaration]
> > >  2869 |         trace_array_put(qla_trc_array);
> > >       |         ^~~~~~~~~~~~~~~
> > >  
> > 
> 
> The patch looks good to me.
> 
> Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
> 
> -- Steve
>
diff mbox series

Patch

diff --git a/include/linux/trace.h b/include/linux/trace.h
index bf16961..b5e16e4 100644
--- a/include/linux/trace.h
+++ b/include/linux/trace.h
@@ -2,8 +2,6 @@ 
 #ifndef _LINUX_TRACE_H
 #define _LINUX_TRACE_H
 
-#ifdef CONFIG_TRACING
-
 #define TRACE_EXPORT_FUNCTION	BIT(0)
 #define TRACE_EXPORT_EVENT	BIT(1)
 #define TRACE_EXPORT_MARKER	BIT(2)
@@ -28,6 +26,8 @@  struct trace_export {
 	int flags;
 };
 
+#ifdef CONFIG_TRACING
+
 int register_ftrace_export(struct trace_export *export);
 int unregister_ftrace_export(struct trace_export *export);
 
@@ -48,6 +48,38 @@  void osnoise_arch_unregister(void);
 void osnoise_trace_irq_entry(int id);
 void osnoise_trace_irq_exit(int id, const char *desc);
 
+#else /* CONFIG_TRACING */
+static inline int register_ftrace_export(struct trace_export *export)
+{
+	return -EINVAL;
+}
+static inline int unregister_ftrace_export(struct trace_export *export)
+{
+	return 0;
+}
+static inline void trace_printk_init_buffers(void)
+{
+}
+static inline int trace_array_printk(struct trace_array *tr, unsigned long ip,
+				     const char *fmt, ...)
+{
+	return 0;
+}
+static inline int trace_array_init_printk(struct trace_array *tr)
+{
+	return -EINVAL;
+}
+static inline void trace_array_put(struct trace_array *tr)
+{
+}
+static inline struct trace_array *trace_array_get_by_name(const char *name)
+{
+	return NULL;
+}
+static inline int trace_array_destroy(struct trace_array *tr)
+{
+	return 0;
+}
 #endif	/* CONFIG_TRACING */
 
 #endif	/* _LINUX_TRACE_H */