2019-11-21 10:22:05

by Kusanagi Kouichi

[permalink] [raw]
Subject: [PATCH] debugfs: Fix !DEBUG_FS debugfs_create_automount

If DEBUG_FS=n, compile fails with the following error:

kernel/trace/trace.c: In function 'tracing_init_dentry':
kernel/trace/trace.c:8658:9: error: passing argument 3 of 'debugfs_create_automount' from incompatible pointer type [-Werror=incompatible-pointer-types]
8658 | trace_automount, NULL);
| ^~~~~~~~~~~~~~~
| |
| struct vfsmount * (*)(struct dentry *, void *)
In file included from kernel/trace/trace.c:24:
./include/linux/debugfs.h:206:25: note: expected 'struct vfsmount * (*)(void *)' but argument is of type 'struct vfsmount * (*)(struct dentry *, void *)'
206 | struct vfsmount *(*f)(void *),
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~

Signed-off-by: Kusanagi Kouichi <[email protected]>
---
include/linux/debugfs.h | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h
index 58424eb3b329..798f0b9b43ae 100644
--- a/include/linux/debugfs.h
+++ b/include/linux/debugfs.h
@@ -54,6 +54,8 @@ static const struct file_operations __fops = { \
.llseek = no_llseek, \
}

+typedef struct vfsmount *(*debugfs_automount_t)(struct dentry *, void *);
+
#if defined(CONFIG_DEBUG_FS)

struct dentry *debugfs_lookup(const char *name, struct dentry *parent);
@@ -75,7 +77,6 @@ struct dentry *debugfs_create_dir(const char *name, struct dentry *parent);
struct dentry *debugfs_create_symlink(const char *name, struct dentry *parent,
const char *dest);

-typedef struct vfsmount *(*debugfs_automount_t)(struct dentry *, void *);
struct dentry *debugfs_create_automount(const char *name,
struct dentry *parent,
debugfs_automount_t f,
@@ -203,7 +204,7 @@ static inline struct dentry *debugfs_create_symlink(const char *name,

static inline struct dentry *debugfs_create_automount(const char *name,
struct dentry *parent,
- struct vfsmount *(*f)(void *),
+ debugfs_automount_t f,
void *data)
{
return ERR_PTR(-ENODEV);
--
2.24.0


2019-11-21 11:54:41

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] debugfs: Fix !DEBUG_FS debugfs_create_automount

On Thu, Nov 21, 2019 at 07:20:21PM +0900, Kusanagi Kouichi wrote:
> If DEBUG_FS=n, compile fails with the following error:
>
> kernel/trace/trace.c: In function 'tracing_init_dentry':
> kernel/trace/trace.c:8658:9: error: passing argument 3 of 'debugfs_create_automount' from incompatible pointer type [-Werror=incompatible-pointer-types]
> 8658 | trace_automount, NULL);
> | ^~~~~~~~~~~~~~~
> | |
> | struct vfsmount * (*)(struct dentry *, void *)
> In file included from kernel/trace/trace.c:24:
> ./include/linux/debugfs.h:206:25: note: expected 'struct vfsmount * (*)(void *)' but argument is of type 'struct vfsmount * (*)(struct dentry *, void *)'
> 206 | struct vfsmount *(*f)(void *),
> | ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
>
> Signed-off-by: Kusanagi Kouichi <[email protected]>
> ---
> include/linux/debugfs.h | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)

Has this always been a problem, or did it just show up due to some other
kernel change?

thanks,

greg k-h

2019-11-21 12:46:35

by Kusanagi Kouichi

[permalink] [raw]
Subject: Re: [PATCH] debugfs: Fix !DEBUG_FS debugfs_create_automount

On 2019-11-21 12:52:32 +0100, Greg Kroah-Hartman wrote:
>
> Has this always been a problem, or did it just show up due to some other
> kernel change?
>

The latter. Please see https://lkml.org/lkml/2019/11/21/11

> thanks,
>
> greg k-h

2019-11-21 13:28:49

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] debugfs: Fix !DEBUG_FS debugfs_create_automount

On Thu, Nov 21, 2019 at 09:44:13PM +0900, Kusanagi Kouichi wrote:
> On 2019-11-21 12:52:32 +0100, Greg Kroah-Hartman wrote:
> >
> > Has this always been a problem, or did it just show up due to some other
> > kernel change?
> >
>
> The latter. Please see https://lkml.org/lkml/2019/11/21/11

So it is fine for this to go into 5.5-rc1 then, right? I'll queue it up
that way.

thanks,

greg k-h

2019-11-21 23:57:13

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH] debugfs: Fix !DEBUG_FS debugfs_create_automount

On Thu, 21 Nov 2019 19:20:21 +0900
Kusanagi Kouichi <[email protected]> wrote:

> If DEBUG_FS=n, compile fails with the following error:
>
> kernel/trace/trace.c: In function 'tracing_init_dentry':
> kernel/trace/trace.c:8658:9: error: passing argument 3 of 'debugfs_create_automount' from incompatible pointer type [-Werror=incompatible-pointer-types]
> 8658 | trace_automount, NULL);
> | ^~~~~~~~~~~~~~~
> | |
> | struct vfsmount * (*)(struct dentry *, void *)
> In file included from kernel/trace/trace.c:24:
> ./include/linux/debugfs.h:206:25: note: expected 'struct vfsmount * (*)(void *)' but argument is of type 'struct vfsmount * (*)(struct dentry *, void *)'
> 206 | struct vfsmount *(*f)(void *),
> | ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
>

Please add the tag:

Reported-by: kbuild test robot <[email protected]>

You can also add:

Link: https://lore.kernel.org/lkml/201911211354.zYtbB4MD%[email protected]/

-- Steve

> Signed-off-by: Kusanagi Kouichi <[email protected]>
> ---
> include/linux/debugfs.h | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h
> index 58424eb3b329..798f0b9b43ae 100644
> --- a/include/linux/debugfs.h
> +++ b/include/linux/debugfs.h
> @@ -54,6 +54,8 @@ static const struct file_operations __fops = { \
> .llseek = no_llseek, \
> }
>
> +typedef struct vfsmount *(*debugfs_automount_t)(struct dentry *, void *);
> +
> #if defined(CONFIG_DEBUG_FS)
>
> struct dentry *debugfs_lookup(const char *name, struct dentry *parent);
> @@ -75,7 +77,6 @@ struct dentry *debugfs_create_dir(const char *name, struct dentry *parent);
> struct dentry *debugfs_create_symlink(const char *name, struct dentry *parent,
> const char *dest);
>
> -typedef struct vfsmount *(*debugfs_automount_t)(struct dentry *, void *);
> struct dentry *debugfs_create_automount(const char *name,
> struct dentry *parent,
> debugfs_automount_t f,
> @@ -203,7 +204,7 @@ static inline struct dentry *debugfs_create_symlink(const char *name,
>
> static inline struct dentry *debugfs_create_automount(const char *name,
> struct dentry *parent,
> - struct vfsmount *(*f)(void *),
> + debugfs_automount_t f,
> void *data)
> {
> return ERR_PTR(-ENODEV);

2019-11-21 23:59:32

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH] debugfs: Fix !DEBUG_FS debugfs_create_automount

On Thu, 21 Nov 2019 14:26:44 +0100
Greg Kroah-Hartman <[email protected]> wrote:

> On Thu, Nov 21, 2019 at 09:44:13PM +0900, Kusanagi Kouichi wrote:
> > On 2019-11-21 12:52:32 +0100, Greg Kroah-Hartman wrote:
> > >
> > > Has this always been a problem, or did it just show up due to some other
> > > kernel change?
> > >
> >
> > The latter. Please see https://lkml.org/lkml/2019/11/21/11
>
> So it is fine for this to go into 5.5-rc1 then, right? I'll queue it up
> that way.

As the following patch also relies on this fix, can you add this too:

https://lore.kernel.org/lkml/20191120104350753.EWCT.12796.ppp.dion.ne.jp@dmta0009.auone-net.jp/

And add my Reviewed-by: Steven Rostedt (VMware) <[email protected]>

I'm haven't run these through my tests yet, but I'm going to (which
takes 13 hours), just to make sure, but I don't expect it to find
anything. But if it does, I'll let you know.

Thanks!

-- Steve

2019-11-22 15:21:12

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] debugfs: Fix !DEBUG_FS debugfs_create_automount

On Thu, Nov 21, 2019 at 06:55:40PM -0500, Steven Rostedt wrote:
> On Thu, 21 Nov 2019 14:26:44 +0100
> Greg Kroah-Hartman <[email protected]> wrote:
>
> > On Thu, Nov 21, 2019 at 09:44:13PM +0900, Kusanagi Kouichi wrote:
> > > On 2019-11-21 12:52:32 +0100, Greg Kroah-Hartman wrote:
> > > >
> > > > Has this always been a problem, or did it just show up due to some other
> > > > kernel change?
> > > >
> > >
> > > The latter. Please see https://lkml.org/lkml/2019/11/21/11
> >
> > So it is fine for this to go into 5.5-rc1 then, right? I'll queue it up
> > that way.
>
> As the following patch also relies on this fix, can you add this too:
>
> https://lore.kernel.org/lkml/20191120104350753.EWCT.12796.ppp.dion.ne.jp@dmta0009.auone-net.jp/
>
> And add my Reviewed-by: Steven Rostedt (VMware) <[email protected]>

Now queued up, thanks!

greg k-h

2019-11-22 16:22:04

by Al Viro

[permalink] [raw]
Subject: Re: [PATCH] debugfs: Fix !DEBUG_FS debugfs_create_automount

On Thu, Nov 21, 2019 at 07:20:21PM +0900, Kusanagi Kouichi wrote:
> If DEBUG_FS=n, compile fails with the following error:
>
> kernel/trace/trace.c: In function 'tracing_init_dentry':
> kernel/trace/trace.c:8658:9: error: passing argument 3 of 'debugfs_create_automount' from incompatible pointer type [-Werror=incompatible-pointer-types]
> 8658 | trace_automount, NULL);
> | ^~~~~~~~~~~~~~~
> | |
> | struct vfsmount * (*)(struct dentry *, void *)
> In file included from kernel/trace/trace.c:24:
> ./include/linux/debugfs.h:206:25: note: expected 'struct vfsmount * (*)(void *)' but argument is of type 'struct vfsmount * (*)(struct dentry *, void *)'
> 206 | struct vfsmount *(*f)(void *),
> | ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~

ACK. I'd probably add something along the lines of "the stub for
debugfs_create_automount() used in !DEBUG_FS configs is misdeclared -
its callback argument (unused by the stub) has the wrong type.
Get the stub in sync with the real debugfs_create_automount()."
to commit message.

2019-11-24 01:17:08

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH] debugfs: Fix !DEBUG_FS debugfs_create_automount

On Fri, 22 Nov 2019 16:19:26 +0100
Greg Kroah-Hartman <[email protected]> wrote:

> > As the following patch also relies on this fix, can you add this too:
> >
> > https://lore.kernel.org/lkml/20191120104350753.EWCT.12796.ppp.dion.ne.jp@dmta0009.auone-net.jp/
> >
> > And add my Reviewed-by: Steven Rostedt (VMware) <[email protected]>
>
> Now queued up, thanks!

Thanks, and FYI, I ran this through all my tests and it passed (both patches together).

-- Steve