Re: reasonable for a Kconfig variable to be tested only for "_MODULE"?

From: Randy Dunlap
Date: Sun Apr 15 2012 - 13:07:57 EST


On 04/12/2012 04:30 AM, Robert P. J. Day wrote:

>
> playing with my cleanup scripts this morning and ran across this
> output looking for unused CONFIG_ variables under drivers/ata:
>
> $ ../s/find_unused_configs.sh drivers/ata
> ===== PATA_QDI
> drivers/ata/Kconfig:831:config PATA_QDI
> ===== PATA_WINBOND_VLB
> drivers/ata/Kconfig:865:config PATA_WINBOND_VLB
> $
>
> normally, i would flag that as "variables that are defined in a
> Kconfig file but are never tested anywhere", but upon further
> examination:
>
> $ $ grep -r PATA_QDI *
> drivers/ata/Kconfig:config PATA_QDI
> drivers/ata/pata_legacy.c:#ifdef CONFIG_PATA_QDI_MODULE
> $
>
> so "CONFIG_PATA_QDI" isn't tested, but "CONFIG_PATA_QDI_MODULE" *is*,
> which is not something i'd considered. the Kconfig entry:
>
> config PATA_QDI
> tristate "QDI VLB PATA support"
> depends on ISA
> select PATA_LEGACY
> help
> Support for QDI 6500 and 6580 PATA controllers on VESA local bus.
>
> and the relevant source:
>
> /* Set to probe QDI controllers */
> #ifdef CONFIG_PATA_QDI_MODULE
> static int qdi = 1;
> #else
> static int qdi;
> #endif
>
> is that combination reasonable? to test *only* for
> "CONFIG_whatever_MODULE"? if it is, i'll add that check to avoid
> reporting false positives.

Yes, sometimes modules want to behave differently (e.g., initialize
differently) if they are built as a loadable module.
I've seen this other places.


> all of the above can be said for PATA_WINBOND_VLB as well.
>
> rday
>



--
~Randy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/