Re: [PATCH] scripts: Add device_attr_<rw|ro|wr>.pl scripts to convert DEVICE_ATTR uses

From: Joe Perches
Date: Tue Jan 02 2018 - 10:34:43 EST


On Sat, 2017-12-23 at 15:19 +0100, Greg Kroah-Hartman wrote:
> On Fri, Dec 22, 2017 at 12:02:47PM -0800, Joe Perches wrote:
> > There are many uses of the DEVICE_ATTR(var, perms, show, store)
> > declaration macro that could use one of the convenience macros
> > DEVICE_ATTR_RW, DEVICE_ATTR_RO, or DEVICE_ATTR_WO.
> >
> > These scripts automate those conversions.

Hey Greg. Are you going to use these scripts?

> > Many declarations of functions used to show or store the values
> > do not use the <var>_show and <var>_store form. These scripts
> > also check to see if the normal form is unused in the file, that
> > the currently named functions are static and only used as the
> > function definition and the macro declaration and convert the
> > unusual function name to the more normal style.
> >
> > Use these scripts with a list of files to be converted.
> >
> > e.g.: git ls-files -- "*.c" | xargs perl -i scripts/device_attr_rw.pl
> >
> > Here are the current uses of DEVICE_ATTR macros in next-20171222
> >
> > $ git grep -w -P "DEVICE_ATTR(_RW|_RO|_WO|)" -- "*.c" | wc -l
> > 3393
> > $ git grep -w -P "DEVICE_ATTR" -- "*.c" | wc -l
> > 2052
> > $ git grep -w -P "DEVICE_ATTR_RW" -- "*.c" | wc -l
> > 456
> > $ git grep -w -P "DEVICE_ATTR_RO" -- "*.c" | wc -l
> > 821
> > $ git grep -w -P "DEVICE_ATTR_WO" -- "*.c" | wc -l
> > 64
> >
> > If these scripts on run on that tag, there are 1490 conversions done
> >
> > $ git grep -w --name-only DEVICE_ATTR -- "*.c" | \
> > xargs perl -i scripts/device_attr_rw.pl
> > $ git grep -w --name-only DEVICE_ATTR -- "*.c" | \
> > xargs perl -i scripts/device_attr_ro.pl
> > $ git grep -w --name-only DEVICE_ATTR -- "*.c" | \
> > xargs perl -i scripts/device_attr_wo.pl
> >
> > $ git grep -w -P "DEVICE_ATTR(_RW|_RO|_WO|)" -- "*.c" | wc -l
> > 3393
> > $ git grep -w -P "DEVICE_ATTR" -- "*.c" | wc -l
> > 562
> > $ git grep -w -P "DEVICE_ATTR_RW" -- "*.c" | wc -l
> > 924
> > $ git grep -w -P "DEVICE_ATTR_RO" -- "*.c" | wc -l
> > 1727
> > $ git grep -w -P "DEVICE_ATTR_WO" -- "*.c" | wc -l
> > 180
> >
> > Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
> >
> > 1727
> > ith '#' will be ignored, and an empty message aborts the commit.
> > ---
> > scripts/device_attr_ro.pl | 57 ++++++++++++++++++++++++++++++++++++++++
> > scripts/device_attr_rw.pl | 66 +++++++++++++++++++++++++++++++++++++++++++++++
> > scripts/device_attr_wo.pl | 57 ++++++++++++++++++++++++++++++++++++++++
>
> We should just fix up all in-kernel users, no need to put the scripts in
> the kernel source tree, right?
>
> thanks,
>
> greg k-h