Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1512797 > unrolled thread

[PATCH 0/3] rtc: remove modular usage from non-modular code

Started byPaul Gortmaker <paul.gortmaker@windriver.com>
First post2016-10-31 20:00 +0100
Last post2016-11-04 23:40 +0100
Articles 4 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/3] rtc: remove modular usage from non-modular code Paul Gortmaker <paul.gortmaker@windriver.com> - 2016-10-31 20:00 +0100
    [PATCH 3/3] rtc: sparc: make sun4v explicitly non-modular Paul Gortmaker <paul.gortmaker@windriver.com> - 2016-10-31 20:00 +0100
    [PATCH 1/3] rtc: make rtc-lib explicitly non-modular Paul Gortmaker <paul.gortmaker@windriver.com> - 2016-10-31 20:00 +0100
    Re: [PATCH 0/3] rtc: remove modular usage from non-modular code Alexandre Belloni <alexandre.belloni@free-electrons.com> - 2016-11-04 23:40 +0100

#1512797 — [PATCH 0/3] rtc: remove modular usage from non-modular code

FromPaul Gortmaker <paul.gortmaker@windriver.com>
Date2016-10-31 20:00 +0100
Subject[PATCH 0/3] rtc: remove modular usage from non-modular code
Message-ID<sypYl-6cx-7@gated-at.bofh.it>
My ongoing audit looking for non-modular code that needlessly uses
modular macros (vs. built-in equivalents) and/or has dead code
relating to module unloading that can never be executed led to the
creation of these rtc related commits.

For anyone new to the underlying goal of this cleanup, we are trying to
not use module support for code that can never be built as a module since:

 (1) it is easy to accidentally write unused module_exit and remove code
 (2) it can be misleading when reading the source, thinking it can be
     modular when the Makefile and/or Kconfig prohibit it
 (3) it requires the include of the module.h header file which in turn
     includes nearly everything else, thus adding to CPP overhead.
 (4) it gets copied/replicated into other code and spreads like weeds.

Build tested on current linux-next (sparc32) to ensure no silly typos
or implicit include issues that would break compilation crept in.

---

Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: rtc-linux@googlegroups.com
Cc: sparclinux@vger.kernel.org

Paul Gortmaker (3):
  rtc: make rtc-lib explicitly non-modular
  rtc: sparc: make starfire explicitly non-modular
  rtc: sparc: make sun4v explicitly non-modular

 drivers/rtc/rtc-lib.c      |  4 +---
 drivers/rtc/rtc-starfire.c | 10 ++++------
 drivers/rtc/rtc-sun4v.c    | 10 ++++------
 3 files changed, 9 insertions(+), 15 deletions(-)

-- 
2.10.1

[toc] | [next] | [standalone]


#1512799 — [PATCH 3/3] rtc: sparc: make sun4v explicitly non-modular

FromPaul Gortmaker <paul.gortmaker@windriver.com>
Date2016-10-31 20:00 +0100
Subject[PATCH 3/3] rtc: sparc: make sun4v explicitly non-modular
Message-ID<sypYm-6cx-29@gated-at.bofh.it>
In reply to#1512797
The Kconfig currently controlling compilation of this code is:

drivers/rtc/Kconfig:config RTC_DRV_SUN4V
drivers/rtc/Kconfig:    bool "SUN4V Hypervisor RTC"

...meaning that it currently is not being built as a module by anyone.

Lets remove the couple traces of modular infrastructure use, so that
when reading the driver there is no doubt it is builtin-only.

We delete the MODULE_LICENSE tag etc. since all that information
was (or is now) contained at the top of the file in the comments.

Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: sparclinux@vger.kernel.org
Cc: rtc-linux@googlegroups.com
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
 drivers/rtc/rtc-sun4v.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/rtc/rtc-sun4v.c b/drivers/rtc/rtc-sun4v.c
index 7c696c12f28f..11bc562eba5d 100644
--- a/drivers/rtc/rtc-sun4v.c
+++ b/drivers/rtc/rtc-sun4v.c
@@ -1,12 +1,14 @@
 /* rtc-sun4v.c: Hypervisor based RTC for SUN4V systems.
  *
+ * Author: David S. Miller
+ * License: GPL
+ *
  * Copyright (C) 2008 David S. Miller <davem@davemloft.net>
  */
 
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
 #include <linux/kernel.h>
-#include <linux/module.h>
 #include <linux/delay.h>
 #include <linux/init.h>
 #include <linux/rtc.h>
@@ -98,8 +100,4 @@ static struct platform_driver sun4v_rtc_driver = {
 	},
 };
 
-module_platform_driver_probe(sun4v_rtc_driver, sun4v_rtc_probe);
-
-MODULE_AUTHOR("David S. Miller <davem@davemloft.net>");
-MODULE_DESCRIPTION("SUN4V RTC driver");
-MODULE_LICENSE("GPL");
+builtin_platform_driver_probe(sun4v_rtc_driver, sun4v_rtc_probe);
-- 
2.10.1

[toc] | [prev] | [next] | [standalone]


#1512800 — [PATCH 1/3] rtc: make rtc-lib explicitly non-modular

FromPaul Gortmaker <paul.gortmaker@windriver.com>
Date2016-10-31 20:00 +0100
Subject[PATCH 1/3] rtc: make rtc-lib explicitly non-modular
Message-ID<sypYm-6cx-35@gated-at.bofh.it>
In reply to#1512797
The Kconfig currently controlling compilation of this code is:

drivers/rtc/Kconfig:config RTC_LIB
drivers/rtc/Kconfig:    bool

...meaning that it currently is not being built as a module by anyone.

Lets remove the couple traces of modular infrastructure use, so that
when reading the driver there is no doubt it is builtin-only.

We delete the MODULE_LICENSE tag since all that information
is already contained at the top of the file in the comments.

We don't replace module.h with init.h since the file doesn't need that.
However we do add export.h since the file uses EXPORT_SYMBOL.

Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Cc: rtc-linux@googlegroups.com
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
 drivers/rtc/rtc-lib.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/rtc/rtc-lib.c b/drivers/rtc/rtc-lib.c
index e6bfb9c42a10..1ae7da5cfc60 100644
--- a/drivers/rtc/rtc-lib.c
+++ b/drivers/rtc/rtc-lib.c
@@ -11,7 +11,7 @@
  * published by the Free Software Foundation.
 */
 
-#include <linux/module.h>
+#include <linux/export.h>
 #include <linux/rtc.h>
 
 static const unsigned char rtc_days_in_month[] = {
@@ -148,5 +148,3 @@ struct rtc_time rtc_ktime_to_tm(ktime_t kt)
 	return ret;
 }
 EXPORT_SYMBOL_GPL(rtc_ktime_to_tm);
-
-MODULE_LICENSE("GPL");
-- 
2.10.1

[toc] | [prev] | [next] | [standalone]


#1515460

FromAlexandre Belloni <alexandre.belloni@free-electrons.com>
Date2016-11-04 23:40 +0100
Message-ID<szVjr-7M5-15@gated-at.bofh.it>
In reply to#1512797
On 31/10/2016 at 14:55:24 -0400, Paul Gortmaker wrote :
> My ongoing audit looking for non-modular code that needlessly uses
> modular macros (vs. built-in equivalents) and/or has dead code
> relating to module unloading that can never be executed led to the
> creation of these rtc related commits.
> 
> For anyone new to the underlying goal of this cleanup, we are trying to
> not use module support for code that can never be built as a module since:
> 
>  (1) it is easy to accidentally write unused module_exit and remove code
>  (2) it can be misleading when reading the source, thinking it can be
>      modular when the Makefile and/or Kconfig prohibit it
>  (3) it requires the include of the module.h header file which in turn
>      includes nearly everything else, thus adding to CPP overhead.
>  (4) it gets copied/replicated into other code and spreads like weeds.
> 
> Build tested on current linux-next (sparc32) to ensure no silly typos
> or implicit include issues that would break compilation crept in.
> 
> ---
> 
> Cc: Alessandro Zummo <a.zummo@towertech.it>
> Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: rtc-linux@googlegroups.com
> Cc: sparclinux@vger.kernel.org
> 
> Paul Gortmaker (3):
>   rtc: make rtc-lib explicitly non-modular
>   rtc: sparc: make starfire explicitly non-modular
>   rtc: sparc: make sun4v explicitly non-modular
> 
>  drivers/rtc/rtc-lib.c      |  4 +---
>  drivers/rtc/rtc-starfire.c | 10 ++++------
>  drivers/rtc/rtc-sun4v.c    | 10 ++++------
>  3 files changed, 9 insertions(+), 15 deletions(-)
> 
Applied, thanks.

-- 
Alexandre Belloni, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web