From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756775AbcHVWAe (ORCPT ); Mon, 22 Aug 2016 18:00:34 -0400 Received: from mail5.windriver.com ([192.103.53.11]:32918 "EHLO mail5.wrs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756729AbcHVWAc (ORCPT ); Mon, 22 Aug 2016 18:00:32 -0400 From: Paul Gortmaker To: CC: Paul Gortmaker , Bjorn Helgaas , Jingoo Han , Krzysztof Kozlowski , Kukjin Kim , Ley Foon Tan , Lucas Stach , Pratyush Anand , Richard Zhu , Tom Long Nguyen , Will Deacon , , , Subject: [PATCH 0/8] PCI: more trivial demodularization of builtin code Date: Mon, 22 Aug 2016 17:59:40 -0400 Message-ID: <20160822215948.27251-1-paul.gortmaker@windriver.com> X-Mailer: git-send-email 2.8.4 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 This is another group of commits that was chosen since they really don't change anything even at a binary object file level ; they just replace module_init with device_initcall (which are identical), and remove some MODULE_ tags that are no-ops in code. So the run time regression risk is zero here. More specifically, we are doing the following to these PCI files that currently can only be built-in: -- remove the include of module.h ; replace it with init.h as req'd -- drop instances of MODULE_DEVICE_TABLE which is a no-op built-in. -- replace module_init (if present) with device_initcall, which is functionally identical once CPP has processed the source. -- drop instances of MODULE_LICENSE, MODULE_AUTHOR, MODULE_DESCRIPTION while ensuring the contained info is present in the file comments. Build tested for allmodconfig on several arch, including ARM and ARM-64 on a recent linux-next baseline. Some non-modular PCI files still remain with unused __exit and/or .remove functions. Those will be dealt with in a separate series after this. Also note that we looked into modularizing some of the PCI_DW stuff at an earlier time[1] but that ran into problems such as trying to create unwind for hook_fault_code etc. that wasn't easily solved. So we just go with keeping the code runtime functionally equivalent to what it was. Paul. [1] https://lkml.kernel.org/r/1454889644-27830-1-git-send-email-paul.gortmaker@windriver.com --- Cc: Bjorn Helgaas Cc: Jingoo Han Cc: Krzysztof Kozlowski Cc: Kukjin Kim Cc: Ley Foon Tan Cc: Lucas Stach Cc: Pratyush Anand Cc: Richard Zhu Cc: Tom Long Nguyen Cc: Will Deacon Cc: rfi@lists.rocketboards.org Cc: linux-pci@vger.kernel.org Cc: linux-samsung-soc@vger.kernel.org Paul Gortmaker (8): PCI: altera: make msi explicitly non-modular PCI: altera: make it explicitly non-modular PCI: imx6: make it explicitly non-modular PCI: portdrv: make it explicitly non-modular PCI: spear13xx: make it explicitly non-modular PCI: designware: make host support explicitly non-modular PCI: exynos: make host support explicitly non-modular PCI: generic: make host-common explicitly non-modular drivers/pci/host/pci-exynos.c | 7 +------ drivers/pci/host/pci-host-common.c | 7 ++----- drivers/pci/host/pci-imx6.c | 9 +-------- drivers/pci/host/pcie-altera-msi.c | 10 +++++----- drivers/pci/host/pcie-altera.c | 12 +++++------- drivers/pci/host/pcie-designware.c | 5 ----- drivers/pci/host/pcie-spear13xx.c | 11 ++--------- drivers/pci/pcie/portdrv_pci.c | 8 +------- 8 files changed, 17 insertions(+), 52 deletions(-) -- 2.8.4 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Gortmaker Subject: [PATCH 0/8] PCI: more trivial demodularization of builtin code Date: Mon, 22 Aug 2016 17:59:40 -0400 Message-ID: <20160822215948.27251-1-paul.gortmaker@windriver.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from mail5.windriver.com ([192.103.53.11]:32918 "EHLO mail5.wrs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756729AbcHVWAc (ORCPT ); Mon, 22 Aug 2016 18:00:32 -0400 Sender: linux-samsung-soc-owner@vger.kernel.org List-Id: linux-samsung-soc@vger.kernel.org To: linux-kernel@vger.kernel.org Cc: Paul Gortmaker , Bjorn Helgaas , Jingoo Han , Krzysztof Kozlowski , Kukjin Kim , Ley Foon Tan , Lucas Stach , Pratyush Anand , Richard Zhu , Tom Long Nguyen , Will Deacon , rfi@lists.rocketboards.org, linux-pci@vger.kernel.org, linux-samsung-soc@vger.kernel.org This is another group of commits that was chosen since they really don't change anything even at a binary object file level ; they just replace module_init with device_initcall (which are identical), and remove some MODULE_ tags that are no-ops in code. So the run time regression risk is zero here. More specifically, we are doing the following to these PCI files that currently can only be built-in: -- remove the include of module.h ; replace it with init.h as req'd -- drop instances of MODULE_DEVICE_TABLE which is a no-op built-in. -- replace module_init (if present) with device_initcall, which is functionally identical once CPP has processed the source. -- drop instances of MODULE_LICENSE, MODULE_AUTHOR, MODULE_DESCRIPTION while ensuring the contained info is present in the file comments. Build tested for allmodconfig on several arch, including ARM and ARM-64 on a recent linux-next baseline. Some non-modular PCI files still remain with unused __exit and/or .remove functions. Those will be dealt with in a separate series after this. Also note that we looked into modularizing some of the PCI_DW stuff at an earlier time[1] but that ran into problems such as trying to create unwind for hook_fault_code etc. that wasn't easily solved. So we just go with keeping the code runtime functionally equivalent to what it was. Paul. [1] https://lkml.kernel.org/r/1454889644-27830-1-git-send-email-paul.gortmaker@windriver.com --- Cc: Bjorn Helgaas Cc: Jingoo Han Cc: Krzysztof Kozlowski Cc: Kukjin Kim Cc: Ley Foon Tan Cc: Lucas Stach Cc: Pratyush Anand Cc: Richard Zhu Cc: Tom Long Nguyen Cc: Will Deacon Cc: rfi@lists.rocketboards.org Cc: linux-pci@vger.kernel.org Cc: linux-samsung-soc@vger.kernel.org Paul Gortmaker (8): PCI: altera: make msi explicitly non-modular PCI: altera: make it explicitly non-modular PCI: imx6: make it explicitly non-modular PCI: portdrv: make it explicitly non-modular PCI: spear13xx: make it explicitly non-modular PCI: designware: make host support explicitly non-modular PCI: exynos: make host support explicitly non-modular PCI: generic: make host-common explicitly non-modular drivers/pci/host/pci-exynos.c | 7 +------ drivers/pci/host/pci-host-common.c | 7 ++----- drivers/pci/host/pci-imx6.c | 9 +-------- drivers/pci/host/pcie-altera-msi.c | 10 +++++----- drivers/pci/host/pcie-altera.c | 12 +++++------- drivers/pci/host/pcie-designware.c | 5 ----- drivers/pci/host/pcie-spear13xx.c | 11 ++--------- drivers/pci/pcie/portdrv_pci.c | 8 +------- 8 files changed, 17 insertions(+), 52 deletions(-) -- 2.8.4