2022-09-07 23:58:46

by Arun Easi

[permalink] [raw]
Subject: [PATCH v3 1/1] tracing: Fix compile error in trace_array calls when TRACING is disabled

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 <[email protected]>
Signed-off-by: Arun Easi <[email protected]>
---
include/linux/trace.h | 36 ++++++++++++++++++++++++++++++++++--
1 file changed, 34 insertions(+), 2 deletions(-)

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 */
--
2.9.5


2022-09-08 17:13:19

by Bart Van Assche

[permalink] [raw]
Subject: Re: [PATCH v3 1/1] tracing: Fix compile error in trace_array calls when TRACING is disabled

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.

2022-09-08 19:19:01

by Arun Easi

[permalink] [raw]
Subject: Re: [EXT] Re: [PATCH v3 1/1] tracing: Fix compile error in trace_array calls when TRACING is disabled

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

2022-09-16 01:56:35

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH v3 1/1] tracing: Fix compile error in trace_array calls when TRACING is disabled


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);
> | ^~~~~~~~~~~~~~~
>

--
Martin K. Petersen Oracle Linux Engineering

2022-09-16 22:01:11

by Arun Easi

[permalink] [raw]
Subject: Re: [EXT] Re: [PATCH v3 1/1] tracing: Fix compile error in trace_array calls when TRACING is disabled

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/[email protected]/

Steve suggesting to take the patch via SCSI tree:
https://lore.kernel.org/linux-scsi/[email protected]/

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);
> > | ^~~~~~~~~~~~~~~
> >
>
>

2022-09-22 21:32:01

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH v3 1/1] tracing: Fix compile error in trace_array calls when TRACING is disabled

On Thu, 15 Sep 2022 21:32:59 -0400
"Martin K. Petersen" <[email protected]> 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) <[email protected]>

-- Steve

2022-09-22 23:28:10

by Arun Easi

[permalink] [raw]
Subject: Re: [EXT] Re: [PATCH v3 1/1] tracing: Fix compile error in trace_array calls when TRACING is disabled

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" <[email protected]> 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) <[email protected]>
>
> -- Steve
>