Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753498AbcC0VMM (ORCPT ); Sun, 27 Mar 2016 17:12:12 -0400 Received: from mail5.windriver.com ([192.103.53.11]:44564 "EHLO mail5.wrs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751817AbcC0VMJ (ORCPT ); Sun, 27 Mar 2016 17:12:09 -0400 From: Paul Gortmaker To: CC: Olof Johansson , Will Deacon , Arnd Bergmann , Paul Gortmaker , Alison Chaiken , Brian Norris , Florian Fainelli , Geert Uytterhoeven , Gregory Fong , Kevin Hilman , Pawel Moll , Sascha Hauer , Shawn Guo , Simon Horman , Wolfram Sang , Subject: [PATCH 0/4] drivers/bus: remove unused modular code from non-modular drivers Date: Sun, 27 Mar 2016 17:10:54 -0400 Message-ID: <1459113058-14340-1-git-send-email-paul.gortmaker@windriver.com> X-Mailer: git-send-email 2.6.1 MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2788 Lines: 64 The drivers/bus doesn't have a strict maintainer entry, but since all the changes here are for ARM platforms, I'm Cc'ing arm-kernel and hoping it makes sense to vector these few changes through the arm-soc. [Olof, Will, Arnd? Seems you guys handle most of 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 four commits. Two are of the trivial kind, where we substitute in the non-modular versions that CPP would have put in place anyway, resulting in no actual changes, even at the binary output level. The other two are of the kind where there was a ".remove" function registered into the driver struct. Being non-modular, these functions will never be called via a normal module_exit path. However, since it was possible (but largely pointless, and without a real use case) to unbind these drivers via sysfs, we explicitly disallow the unbind as part of the removal of the ".remove" itself. 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 for arm and arm64 on v4.6-rc1 to ensure no silly typos that would break compilation crept in. --- Cc: Alison Chaiken Cc: Brian Norris Cc: Florian Fainelli Cc: Geert Uytterhoeven Cc: Gregory Fong Cc: Kevin Hilman Cc: Pawel Moll Cc: Sascha Hauer Cc: Shawn Guo Cc: Simon Horman Cc: Wolfram Sang Cc: linux-arm-kernel@lists.infradead.org Paul Gortmaker (4): drivers/bus: make brcmstb_gisb.c driver explicitly non-modular drivers/bus: make imx-weim.c explicitly non-modular drivers/bus: make simple-pm-bus.c explicitly non-modular drivers/bus: make arm-ccn.c driver explicitly non-modular drivers/bus/arm-ccn.c | 41 +++++------------------------------------ drivers/bus/brcmstb_gisb.c | 4 +--- drivers/bus/imx-weim.c | 9 ++------- drivers/bus/simple-pm-bus.c | 22 +++++----------------- 4 files changed, 13 insertions(+), 63 deletions(-) -- 2.6.1