This change reports a warning when "default n" is used.
I have seen several "remove default n" patches, so I think
it might be helpful to add this test in checkpatch.
tested:
WARNING: 'default n' is the default value, no need to write it explicitly.
+ default n
Signed-off-by: Miles Chen <[email protected]>
---
scripts/checkpatch.pl | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 342c7c781ba5..6531b5757c6b 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3005,6 +3005,13 @@ sub process {
"Use of boolean is deprecated, please use bool instead.\n" . $herecurr);
}
+# avoid redundant 'default n'
+ if ($realfile =~ /Kconfig/ &&
+ $line =~ /^\+\s*\bdefault n\b/) {
+ WARN("AVOID_DEFAULT_N",
+ "'default n' is the default value, no need to write it explicitly.\n" . $herecurr);
+ }
+
if (($realfile =~ /Makefile.*/ || $realfile =~ /Kbuild.*/) &&
($line =~ /\+(EXTRA_[A-Z]+FLAGS).*/)) {
my $flag = $1;
--
2.18.0
On Wed, 2019-07-03 at 16:30 +0800, Miles Chen wrote:
> This change reports a warning when "default n" is used.
>
> I have seen several "remove default n" patches, so I think
> it might be helpful to add this test in checkpatch.
>
> tested:
> WARNING: 'default n' is the default value, no need to write it explicitly.
> + default n
I don't think this is reasonable as there are
several uses like:
default y
default n if <foo>
For instance:
arch/alpha/Kconfig-config ALPHA_WTINT
arch/alpha/Kconfig- bool "Use WTINT" if ALPHA_SRM || ALPHA_GENERIC
arch/alpha/Kconfig- default y if ALPHA_QEMU
arch/alpha/Kconfig: default n if ALPHA_EV5 || ALPHA_EV56 || (ALPHA_EV4 && !ALPHA_LCA)
arch/alpha/Kconfig: default n if !ALPHA_SRM && !ALPHA_GENERIC
On Wed, 2019-07-03 at 01:42 -0700, Joe Perches wrote:
> On Wed, 2019-07-03 at 16:30 +0800, Miles Chen wrote:
> > This change reports a warning when "default n" is used.
> >
> > I have seen several "remove default n" patches, so I think
> > it might be helpful to add this test in checkpatch.
> >
> > tested:
> > WARNING: 'default n' is the default value, no need to write it explicitly.
> > + default n
>
> I don't think this is reasonable as there are
> several uses like:
>
> default y
> default n if <foo>
>
> For instance:
>
> arch/alpha/Kconfig-config ALPHA_WTINT
> arch/alpha/Kconfig- bool "Use WTINT" if ALPHA_SRM || ALPHA_GENERIC
> arch/alpha/Kconfig- default y if ALPHA_QEMU
> arch/alpha/Kconfig: default n if ALPHA_EV5 || ALPHA_EV56 || (ALPHA_EV4 && !ALPHA_LCA)
> arch/alpha/Kconfig: default n if !ALPHA_SRM && !ALPHA_GENERIC
I've sent similar patch in 2016, my version won't complain about these.
https://lkml.org/lkml/2016/4/22/580
Joe.C
On Wed, 2019-07-03 at 01:42 -0700, Joe Perches wrote:
> On Wed, 2019-07-03 at 16:30 +0800, Miles Chen wrote:
> > This change reports a warning when "default n" is used.
> >
> > I have seen several "remove default n" patches, so I think
> > it might be helpful to add this test in checkpatch.
> >
> > tested:
> > WARNING: 'default n' is the default value, no need to write it explicitly.
> > + default n
>
> I don't think this is reasonable as there are
> several uses like:
>
> default y
> default n if <foo>
>
> For instance:
>
> arch/alpha/Kconfig-config ALPHA_WTINT
> arch/alpha/Kconfig- bool "Use WTINT" if ALPHA_SRM || ALPHA_GENERIC
> arch/alpha/Kconfig- default y if ALPHA_QEMU
> arch/alpha/Kconfig: default n if ALPHA_EV5 || ALPHA_EV56 || (ALPHA_EV4 && !ALPHA_LCA)
> arch/alpha/Kconfig: default n if !ALPHA_SRM && !ALPHA_GENERIC
Hi,
I've sent similar patch in 2016, my version won't complain about these.
https://lkml.org/lkml/2016/4/22/580
Joe.C
On Wed, 2019-07-03 at 01:42 -0700, Joe Perches wrote:
> On Wed, 2019-07-03 at 16:30 +0800, Miles Chen wrote:
> > This change reports a warning when "default n" is used.
> >
> > I have seen several "remove default n" patches, so I think
> > it might be helpful to add this test in checkpatch.
> >
> > tested:
> > WARNING: 'default n' is the default value, no need to write it explicitly.
> > + default n
>
> I don't think this is reasonable as there are
> several uses like:
>
> default y
> default n if <foo>
>
> For instance:
>
> arch/alpha/Kconfig-config ALPHA_WTINT
> arch/alpha/Kconfig- bool "Use WTINT" if ALPHA_SRM || ALPHA_GENERIC
> arch/alpha/Kconfig- default y if ALPHA_QEMU
> arch/alpha/Kconfig: default n if ALPHA_EV5 || ALPHA_EV56 || (ALPHA_EV4 && !ALPHA_LCA)
> arch/alpha/Kconfig: default n if !ALPHA_SRM && !ALPHA_GENERIC
>
>
Thanks for your comment, perhaps we can just deal with the "default n$"
case?
like:
+ $line =~ /^\+\s*\bdefault n$/) {
On Wed, 2019-07-03 at 17:03 +0800, Yingjoe Chen wrote:
> On Wed, 2019-07-03 at 01:42 -0700, Joe Perches wrote:
> > On Wed, 2019-07-03 at 16:30 +0800, Miles Chen wrote:
> > > This change reports a warning when "default n" is used.
> > >
> > > I have seen several "remove default n" patches, so I think
> > > it might be helpful to add this test in checkpatch.
> > >
> > > tested:
> > > WARNING: 'default n' is the default value, no need to write it explicitly.
> > > + default n
> >
> > I don't think this is reasonable as there are
> > several uses like:
> >
> > default y
> > default n if <foo>
> >
> > For instance:
> >
> > arch/alpha/Kconfig-config ALPHA_WTINT
> > arch/alpha/Kconfig- bool "Use WTINT" if ALPHA_SRM || ALPHA_GENERIC
> > arch/alpha/Kconfig- default y if ALPHA_QEMU
> > arch/alpha/Kconfig: default n if ALPHA_EV5 || ALPHA_EV56 || (ALPHA_EV4 && !ALPHA_LCA)
> > arch/alpha/Kconfig: default n if !ALPHA_SRM && !ALPHA_GENERIC
>
> Hi,
>
>
> I've sent similar patch in 2016, my version won't complain about these.
>
> https://lkml.org/lkml/2016/4/22/580
Hi again.
https://lore.kernel.org/lkml/[email protected]/
I would prefer a generic solution that also handles the
quoted use.
$ git grep -P 'default\s*\"[ynm]"' -- '*/Kconfig*'
arch/mips/Kconfig: default "y"
arch/mips/Kconfig: default "y"
arch/mips/Kconfig: default "y"
arch/mips/Kconfig: default "y"
arch/mips/cavium-octeon/Kconfig: default "n"
arch/mips/cavium-octeon/Kconfig: default "y"
arch/mips/cavium-octeon/Kconfig: default "y"
arch/mips/cavium-octeon/Kconfig: default "y"
arch/mips/cavium-octeon/Kconfig: default "y"
arch/mips/cavium-octeon/Kconfig: default "y"
arch/mips/cavium-octeon/Kconfig: default "y"
arch/powerpc/Kconfig: default "y" if PPC_POWERNV
arch/powerpc/Kconfig: default "y" if PPC_POWERNV
arch/powerpc/Kconfig: default "n"
drivers/auxdisplay/Kconfig: default "n"
drivers/crypto/Kconfig: default "m"
drivers/rapidio/devices/Kconfig: default "n"
or maybe 2 separate patches.
And the "default y" case and probably the
"default \!?EXPERT" is or should be generally
discouraged. Especially for drivers.
https://lore.kernel.org/lkml/CAHk-=wiZ24JuVehJ5sEC0UG1Gk2nvB363wO02RRsR1oEht6R9Q@mail.gmail.com/
On Wed, 2019-07-03 at 08:37 -0700, Joe Perches wrote:
> On Wed, 2019-07-03 at 17:03 +0800, Yingjoe Chen wrote:
> > On Wed, 2019-07-03 at 01:42 -0700, Joe Perches wrote:
> > > On Wed, 2019-07-03 at 16:30 +0800, Miles Chen wrote:
> > > > This change reports a warning when "default n" is used.
> > > >
> > > > I have seen several "remove default n" patches, so I think
> > > > it might be helpful to add this test in checkpatch.
> > > > DEFAULT_VALUE_STYLE
> > > > tested:
> > > > WARNING: 'default n' is the default value, no need to write it explicitly.
> > > > + default n
> > >
> > > I don't think this is reasonable as there are
> > > several uses like:
> > >
> > > default y
> > > default n if <foo>
> > >
> > > For instance:
> > >
> > > arch/alpha/Kconfig-config ALPHA_WTINT
> > > arch/alpha/Kconfig- bool "Use WTINT" if ALPHA_SRM || ALPHA_GENERIC
> > > arch/alpha/Kconfig- default y if ALPHA_QEMU
> > > arch/alpha/Kconfig: default n if ALPHA_EV5 || ALPHA_EV56 || (ALPHA_EV4 && !ALPHA_LCA)
> > > arch/alpha/Kconfig: default n if !ALPHA_SRM && !ALPHA_GENERIC
> >
> > Hi,
> >
> >
> > I've sent similar patch in 2016, my version won't complain about these.
> >
> > https://lkml.org/lkml/2016/4/22/580
>
> Hi again.
>
> https://lore.kernel.org/lkml/[email protected]/
>
> I would prefer a generic solution that also handles the
> quoted use.
>
> $ git grep -P 'default\s*\"[ynm]"' -- '*/Kconfig*'
> arch/mips/Kconfig: default "y"
> arch/mips/Kconfig: default "y"
> arch/mips/Kconfig: default "y"
> arch/mips/Kconfig: default "y"
> arch/mips/cavium-octeon/Kconfig: default "n"
> arch/mips/cavium-octeon/Kconfig: default "y"
> arch/mips/cavium-octeon/Kconfig: default "y"
> arch/mips/cavium-octeon/Kconfig: default "y"
> arch/mips/cavium-octeon/Kconfig: default "y"
> arch/mips/cavium-octeon/Kconfig: default "y"
> arch/mips/cavium-octeon/Kconfig: default "y"
> arch/powerpc/Kconfig: default "y" if PPC_POWERNV
> arch/powerpc/Kconfig: default "y" if PPC_POWERNV
> arch/powerpc/Kconfig: default "n"
> drivers/auxdisplay/Kconfig: default "n"
> drivers/crypto/Kconfig: default "m"
> drivers/rapidio/devices/Kconfig: default "n"
>
> or maybe 2 separate patches.
>
> And the "default y" case and probably the
> "default \!?EXPERT" is or should be generally
> discouraged. Especially for drivers.
>
> https://lore.kernel.org/lkml/CAHk-=wiZ24JuVehJ5sEC0UG1Gk2nvB363wO02RRsR1oEht6R9Q@mail.gmail.com/
>
>
Thanks for your comment, I'll send another patch for these cases:
1. default "[ynm]"
2. default \!?EXPERT
3. default n$