2021-11-01 15:22:17

by Jiri Olsa

[permalink] [raw]
Subject: [PATCH] ftrace/samples: Add missing prototype for my_direct_func

There's compilation fail reported kernel test robot for W=1 build:

>> samples/ftrace/ftrace-direct-multi.c:8:6: warning: no previous
prototype for function 'my_direct_func' [-Wmissing-prototypes]
void my_direct_func(unsigned long ip)

The inlined assembly is used outside function, so we can't make
my_direct_func static and pass it as asm input argument.

However my_tramp is already extern so I think there's no problem
keeping my_direct_func extern as well and just add its prototype.

Reported-by: kernel test robot <[email protected]>
Fixes: 5fae941b9a6f ("ftrace/samples: Add multi direct interface test module")
Signed-off-by: Jiri Olsa <[email protected]>
---
samples/ftrace/ftrace-direct-multi.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/samples/ftrace/ftrace-direct-multi.c b/samples/ftrace/ftrace-direct-multi.c
index 2a5b1fb7ac14..e0ccf43da0c9 100644
--- a/samples/ftrace/ftrace-direct-multi.c
+++ b/samples/ftrace/ftrace-direct-multi.c
@@ -10,6 +10,7 @@ void my_direct_func(unsigned long ip)
trace_printk("ip %lx\n", ip);
}

+extern void my_direct_func(unsigned long ip);
extern void my_tramp(void *);

asm (
--
2.32.0


2021-11-01 15:33:56

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH] ftrace/samples: Add missing prototype for my_direct_func

On Mon, 1 Nov 2021 16:20:02 +0100
Jiri Olsa <[email protected]> wrote:

> There's compilation fail reported kernel test robot for W=1 build:
>
> >> samples/ftrace/ftrace-direct-multi.c:8:6: warning: no previous
> prototype for function 'my_direct_func' [-Wmissing-prototypes]
> void my_direct_func(unsigned long ip)
>
> The inlined assembly is used outside function, so we can't make
> my_direct_func static and pass it as asm input argument.
>
> However my_tramp is already extern so I think there's no problem
> keeping my_direct_func extern as well and just add its prototype.
>
> Reported-by: kernel test robot <[email protected]>
> Fixes: 5fae941b9a6f ("ftrace/samples: Add multi direct interface test module")
> Signed-off-by: Jiri Olsa <[email protected]>
> ---
> samples/ftrace/ftrace-direct-multi.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/samples/ftrace/ftrace-direct-multi.c b/samples/ftrace/ftrace-direct-multi.c
> index 2a5b1fb7ac14..e0ccf43da0c9 100644
> --- a/samples/ftrace/ftrace-direct-multi.c
> +++ b/samples/ftrace/ftrace-direct-multi.c
> @@ -10,6 +10,7 @@ void my_direct_func(unsigned long ip)
> trace_printk("ip %lx\n", ip);
> }
>
> +extern void my_direct_func(unsigned long ip);
> extern void my_tramp(void *);

Except that I believe that the prototype must come before it is used.

I don't think this will fix the warning.

-- Steve


>
> asm (

2021-11-01 15:44:11

by Jiri Olsa

[permalink] [raw]
Subject: Re: [PATCH] ftrace/samples: Add missing prototype for my_direct_func

On Mon, Nov 01, 2021 at 11:31:27AM -0400, Steven Rostedt wrote:
> On Mon, 1 Nov 2021 16:20:02 +0100
> Jiri Olsa <[email protected]> wrote:
>
> > There's compilation fail reported kernel test robot for W=1 build:
> >
> > >> samples/ftrace/ftrace-direct-multi.c:8:6: warning: no previous
> > prototype for function 'my_direct_func' [-Wmissing-prototypes]
> > void my_direct_func(unsigned long ip)
> >
> > The inlined assembly is used outside function, so we can't make
> > my_direct_func static and pass it as asm input argument.
> >
> > However my_tramp is already extern so I think there's no problem
> > keeping my_direct_func extern as well and just add its prototype.
> >
> > Reported-by: kernel test robot <[email protected]>
> > Fixes: 5fae941b9a6f ("ftrace/samples: Add multi direct interface test module")
> > Signed-off-by: Jiri Olsa <[email protected]>
> > ---
> > samples/ftrace/ftrace-direct-multi.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/samples/ftrace/ftrace-direct-multi.c b/samples/ftrace/ftrace-direct-multi.c
> > index 2a5b1fb7ac14..e0ccf43da0c9 100644
> > --- a/samples/ftrace/ftrace-direct-multi.c
> > +++ b/samples/ftrace/ftrace-direct-multi.c
> > @@ -10,6 +10,7 @@ void my_direct_func(unsigned long ip)
> > trace_printk("ip %lx\n", ip);
> > }
> >
> > +extern void my_direct_func(unsigned long ip);
> > extern void my_tramp(void *);
>
> Except that I believe that the prototype must come before it is used.
>
> I don't think this will fix the warning.

ugh, sry.. v2 posted

jirka

>
> -- Steve
>
>
> >
> > asm (
>