[PATCH 0/5] wdt: clean up unused modular infrastructure
Avi Fishman
avifishman70 at gmail.com
Mon May 13 01:43:29 AEST 2019
I saw many drivers that are putting "#ifdef MODULE" around module specific code.
I think it answers all 4 concerns above.
It also covers the case where a developer made the driver available to
be compiled as a module and in the Kconfig didn't make it tristate.
What do you think?
On Thu, May 9, 2019 at 9:17 AM Paul Gortmaker
<paul.gortmaker at windriver.com> wrote:
>
> People can embed modular includes and modular exit functions into code
> that never use any of it, and they won't get any errors or warnings.
>
> Using modular infrastructure in non-modules might seem harmless, but some
> of the downfalls this leads to are:
>
> (1) it is easy to accidentally write unused module_exit/remove code
> (2) it can be misleading when reading the source, thinking a driver can
> be modular when the Makefile and/or Kconfig prohibit it
> (3) an unused include of the module.h header file will in turn
> include nearly everything else; adding a lot to CPP overhead.
> (4) it gets copied/replicated into other drivers and can spread.
>
> As a data point for #3 above, an empty C file that just includes the
> module.h header generates over 750kB of CPP output. Repeating the same
> experiment with init.h and the result is less than 12kB; with export.h
> it is only about 1/2kB; with both it still is less than 12kB.
>
> Here, In this series, we do what has been done for other subsystems,
> like, net, x86, mfd, iommu.... and audit for uses of modular
> infrastructure inside code that currently can't be built as a module.
>
> As always, the option exists for driver authors to convert their code
> to tristate, if there is a valid use case for it to be so. But since
> I don't have the context for each driver to know if such a use case
> exists, I limit myself to simply removing the unused code in order to
> make the driver consistent with the Makefile/Kconfig settings that
> control it.
>
> Paul.
>
> ---
>
> Cc: Benjamin Fair <benjaminfair at google.com>
> Cc: Guenter Roeck <linux at roeck-us.net>
> Cc: Linus Walleij <linus.walleij at linaro.org>
> Cc: linux-watchdog at vger.kernel.org
> Cc: Nancy Yuen <yuenn at google.com>
> Cc: openbmc at lists.ozlabs.org
> Cc: Patrick Venture <venture at google.com>
> Cc: Tali Perry <tali.perry1 at gmail.com>
> Cc: Tomer Maimon <tmaimon77 at gmail.com>
> Cc: Wim Van Sebroeck <wim at iguana.be>
> Cc: Wim Van Sebroeck <wim at linux-watchdog.org>
>
>
> Paul Gortmaker (5):
> watchdog: rtd119x: drop unused module.h include
> watchdog: watchdog_core: make it explicitly non-modular
> watchdog: npcm: make it explicitly non-modular
> watchdog: intel_scu: make it explicitly non-modular
> watchdog: coh901327: make it explicitly non-modular
>
> drivers/watchdog/coh901327_wdt.c | 24 ++++--------------------
> drivers/watchdog/intel_scu_watchdog.c | 18 ------------------
> drivers/watchdog/npcm_wdt.c | 13 ++++++-------
> drivers/watchdog/rtd119x_wdt.c | 1 -
> drivers/watchdog/watchdog_core.c | 15 +--------------
> 5 files changed, 11 insertions(+), 60 deletions(-)
>
> --
> 2.7.4
>
--
Regards,
Avi
More information about the openbmc
mailing list