Re: [PATCH -next] mmc: core: Use DEFINE_DEBUGFS_ATTRIBUTE instead of DEFINE_SIMPLE_ATTRIBUTE

From: Ulf Hansson
Date: Thu Apr 23 2020 - 08:22:28 EST


On Thu, 23 Apr 2020 at 13:55, Zouwei (Samuel) <zou_wei@xxxxxxxxxx> wrote:
>
> Hi Ulf,
>
> Thanks for your review and reply.
>
> 1. DEFINE_SIMPLE_ATTRIBUTE + debugfs_create_file() imposes some significant overhead as compared to DEFINE_DEBUGFS_ATTRIBUTE + debugfs_create_file_unsafe().
> You can refer to the patch of 1a2b3666da58 ("mt76: fix debugfs_simple_attr.cocci warnings")

I see.

> 2. debugfs_create_file_unsafe(...&mmc_clock_fops) is corresponds to DEFINE_DEBUGFS_ATTRIBUTE(mmc_clock_fops...), so I only modified this one.

I have now read the complete function header of
debugfs_create_file_unsafe() and realized that this is indeed okay.

>
> -----éäåä-----
> åää: Ulf Hansson [mailto:ulf.hansson@xxxxxxxxxx]
> åéæé: 2020å4æ23æ 19:17
> æää: Zouwei (Samuel) <zou_wei@xxxxxxxxxx>
> æé: linux-mmc@xxxxxxxxxxxxxxx; Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>
> äé: Re: [PATCH -next] mmc: core: Use DEFINE_DEBUGFS_ATTRIBUTE instead of DEFINE_SIMPLE_ATTRIBUTE
>
> On Thu, 23 Apr 2020 at 11:09, Zou Wei <zou_wei@xxxxxxxxxx> wrote:
> >
> > Fixes coccicheck warning:
> >
> > drivers/mmc/core/debugfs.c:222:0-23: WARNING: mmc_clock_fops should be
> > defined with DEFINE_DEBUGFS_ATTRIBUTE
> >
> > Use DEFINE_DEBUGFS_ATTRIBUTE rather than DEFINE_SIMPLE_ATTRIBUTE for
> > debugfs files
> >
> > Fixes: 703aae3d09a4b ("mmc: add a file to debugfs for changing host
> > clock at runtime")
> > Fixes: a04c50aaa916f ("mmc: core: no need to check return value of
> > debugfs_create functions")
> > Reported-by: Hulk Robot <hulkci@xxxxxxxxxx>
> > Signed-off-by: Zou Wei <zou_wei@xxxxxxxxxx>

Applied for next, thanks!

Kind regards
Uffe

> > ---
> > drivers/mmc/core/debugfs.c | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c
> > index 09e0c76..9ec84c8 100644
> > --- a/drivers/mmc/core/debugfs.c
> > +++ b/drivers/mmc/core/debugfs.c
> > @@ -219,7 +219,7 @@ static int mmc_clock_opt_set(void *data, u64 val)
> > return 0;
> > }
> >
> > -DEFINE_SIMPLE_ATTRIBUTE(mmc_clock_fops, mmc_clock_opt_get,
> > mmc_clock_opt_set,
> > +DEFINE_DEBUGFS_ATTRIBUTE(mmc_clock_fops, mmc_clock_opt_get,
> > +mmc_clock_opt_set,
> > "%llu\n");
> >
> > void mmc_add_host_debugfs(struct mmc_host *host) @@ -232,8 +232,8 @@
> > void mmc_add_host_debugfs(struct mmc_host *host)
> > debugfs_create_file("ios", S_IRUSR, root, host, &mmc_ios_fops);
> > debugfs_create_x32("caps", S_IRUSR, root, &host->caps);
> > debugfs_create_x32("caps2", S_IRUSR, root, &host->caps2);
> > - debugfs_create_file("clock", S_IRUSR | S_IWUSR, root, host,
> > - &mmc_clock_fops);
> > + debugfs_create_file_unsafe("clock", S_IRUSR | S_IWUSR, root, host,
> > + &mmc_clock_fops);
>
> Apologize for my ignorance, but why convert to the *_unsafe option for this one, but not for the others?
>
> [...]
>
> Kind regards
> Uffe