mbox series

[v2,0/7] MODULE_LICENSE removals, first tranche

Message ID 20230216152410.4312-1-nick.alcock@oracle.com (mailing list archive)
Headers show
Series MODULE_LICENSE removals, first tranche | expand

Message

Nick Alcock Feb. 16, 2023, 3:24 p.m. UTC
This series, based on current modules-next, is part of a treewide cleanup
suggested by Luis Chamberlain, to remove the LICENSE_MODULE usage from
files/objects that are not tristate.  Due to recent changes to kbuild, these
uses are now problematic.  See the commit logs for more details.

(The commit log prefixes and Cc lists are automatically determined using
the script mentioned below.  I've eyeballed them, and they seem reasonable:
my apologies if they are not.)

This is a small initial tranche to see if the general approach is valid:
larger tranches can follow if desired and if these patches seem OK.
I'll be sending a second 24-patch tranche in a few hours if this
one meets with general approval.

(In total, there are 121 patches in this series.)


Differences from v1:
 - just remove MODULE_LICENSE, don't comment it out
 - Cc: paid maintainers as well as unpaid ones
 - improvements to the prefix determination code (notable in
   PCI: versatile in particular)

The series at a whole can be found here:
  https://github.com/nickalcock/linux module-license

The patch splitter (not for upstreaming!) used to prepare these
commits can be found here:
  https://github.com/nickalcock/linux mass-split

Cc: Luis Chamberlain <mcgrof@kernel.org>
Cc: linux-modules@vger.kernel.org
Cc: linux-kernel@vger.kernel.org

Nick Alcock (7):
  kbuild, PCI: versatile: remove MODULE_LICENSE in non-modules
  kbuild, PCI: mobiveil: remove MODULE_LICENSE in non-modules
  kbuild, PCI: tegra: remove MODULE_LICENSE in non-modules
  kbuild, PCI: endpoint: remove MODULE_LICENSE in non-modules
  kbuild, PCI: hip: remove MODULE_LICENSE in non-modules
  kbuild, shpchp: remove MODULE_LICENSE in non-modules
  kbuild, PCI: dwc: remove MODULE_LICENSE in non-modules

 drivers/pci/controller/dwc/pcie-histb.c              | 1 -
 drivers/pci/controller/mobiveil/pcie-mobiveil-plat.c | 1 -
 drivers/pci/controller/pci-tegra.c                   | 1 -
 drivers/pci/controller/pci-versatile.c               | 1 -
 drivers/pci/controller/pcie-hisi-error.c             | 1 -
 drivers/pci/endpoint/pci-ep-cfs.c                    | 1 -
 drivers/pci/endpoint/pci-epc-core.c                  | 1 -
 drivers/pci/endpoint/pci-epc-mem.c                   | 1 -
 drivers/pci/endpoint/pci-epf-core.c                  | 1 -
 drivers/pci/hotplug/shpchp_core.c                    | 1 -
 10 files changed, 10 deletions(-)

Comments

Bjorn Helgaas Feb. 16, 2023, 5:43 p.m. UTC | #1
[+cc PCI folks, who got the patches but not this cover letter, and
participants from the v1 posting]

On Thu, Feb 16, 2023 at 03:24:03PM +0000, Nick Alcock wrote:
> This series, based on current modules-next, is part of a treewide cleanup
> suggested by Luis Chamberlain, to remove the LICENSE_MODULE usage from
> files/objects that are not tristate.  Due to recent changes to kbuild, these
> uses are now problematic.  See the commit logs for more details.
> 
> (The commit log prefixes and Cc lists are automatically determined using
> the script mentioned below.  I've eyeballed them, and they seem reasonable:
> my apologies if they are not.)
> 
> This is a small initial tranche to see if the general approach is valid:
> larger tranches can follow if desired and if these patches seem OK.
> I'll be sending a second 24-patch tranche in a few hours if this
> one meets with general approval.
> 
> (In total, there are 121 patches in this series.)
> 
> 
> Differences from v1:
>  - just remove MODULE_LICENSE, don't comment it out
>  - Cc: paid maintainers as well as unpaid ones
>  - improvements to the prefix determination code (notable in
>    PCI: versatile in particular)
> 
> The series at a whole can be found here:
>   https://github.com/nickalcock/linux module-license
> 
> The patch splitter (not for upstreaming!) used to prepare these
> commits can be found here:
>   https://github.com/nickalcock/linux mass-split
> 
> Cc: Luis Chamberlain <mcgrof@kernel.org>
> Cc: linux-modules@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> 
> Nick Alcock (7):
>   kbuild, PCI: versatile: remove MODULE_LICENSE in non-modules
>   kbuild, PCI: mobiveil: remove MODULE_LICENSE in non-modules
>   kbuild, PCI: tegra: remove MODULE_LICENSE in non-modules
>   kbuild, PCI: endpoint: remove MODULE_LICENSE in non-modules
>   kbuild, PCI: hip: remove MODULE_LICENSE in non-modules
>   kbuild, shpchp: remove MODULE_LICENSE in non-modules
>   kbuild, PCI: dwc: remove MODULE_LICENSE in non-modules
> 
>  drivers/pci/controller/dwc/pcie-histb.c              | 1 -
>  drivers/pci/controller/mobiveil/pcie-mobiveil-plat.c | 1 -
>  drivers/pci/controller/pci-tegra.c                   | 1 -
>  drivers/pci/controller/pci-versatile.c               | 1 -
>  drivers/pci/controller/pcie-hisi-error.c             | 1 -
>  drivers/pci/endpoint/pci-ep-cfs.c                    | 1 -
>  drivers/pci/endpoint/pci-epc-core.c                  | 1 -
>  drivers/pci/endpoint/pci-epc-mem.c                   | 1 -
>  drivers/pci/endpoint/pci-epf-core.c                  | 1 -
>  drivers/pci/hotplug/shpchp_core.c                    | 1 -
>  10 files changed, 10 deletions(-)

I squashed these and applied to pci/kbuild for v6.3, thanks!

I added examples from the v1 posting to the commit log; let me know if
I got anything wrong:

commit 84cee45bafcb ("PCI: Remove MODULE_LICENSE so boolean drivers don't look like modules")
Author: Nick Alcock <nick.alcock@oracle.com>
Date:   Thu Feb 16 15:24:04 2023 +0000

    PCI: Remove MODULE_LICENSE so boolean drivers don't look like modules
    
    Since 8b41fc4454e3 ("kbuild: create modules.builtin without
    Makefile.modbuiltin or tristate.conf"), MODULE_LICENSE declarations are
    used to identify modules. As a consequence, MODULE_LICENSE in non-modules
    causes modprobe to misidentify the object file as a module when it is not,
    and modprobe might succeed rather than failing with a suitable error
    message.
    
    For tristate modules that can be either built-in or loaded at runtime,
    modprobe succeeds in both cases:
    
      # modprobe ext4
      [exit status zero if CONFIG_EXT4_FS=y or =m]
    
    For boolean modules like the Standard Hot Plug Controller driver (shpchp)
    that cannot be loaded at runtime, modprobe should always fail like this:
    
      # modprobe shpchp
      modprobe: FATAL: Module shpchp not found in directory /lib/modules/...
      [exit status non-zero regardless of CONFIG_HOTPLUG_PCI_SHPC]
    
    but prior to this commit, shpchp_core.c contained MODULE_LICENSE, so
    "modprobe shpchp" silently succeeded when it should have failed.
    
    Remove MODULE_LICENSE in files that cannot be built as modules.
    
    [bhelgaas: commit log, squash]
    Suggested-by: Luis Chamberlain <mcgrof@kernel.org>
    Link: https://lore.kernel.org/r/20230216152410.4312-1-nick.alcock@oracle.com/
    Signed-off-by: Nick Alcock <nick.alcock@oracle.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Cc: Luis Chamberlain <mcgrof@kernel.org>
    Cc: Hitomi Hasegawa <hasegawa-hitomi@fujitsu.com>
    Cc: Rob Herring <robh@kernel.org>
    Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>

diff --git a/drivers/pci/controller/dwc/pcie-histb.c b/drivers/pci/controller/dwc/pcie-histb.c
index 43c27812dd6d..927ae05dc920 100644
--- a/drivers/pci/controller/dwc/pcie-histb.c
+++ b/drivers/pci/controller/dwc/pcie-histb.c
@@ -450,4 +450,3 @@ static struct platform_driver histb_pcie_platform_driver = {
 module_platform_driver(histb_pcie_platform_driver);
 
 MODULE_DESCRIPTION("HiSilicon STB PCIe host controller driver");
-MODULE_LICENSE("GPL v2");
diff --git a/drivers/pci/controller/mobiveil/pcie-mobiveil-plat.c b/drivers/pci/controller/mobiveil/pcie-mobiveil-plat.c
index f6fcd95c2bf5..c5bb87ff6d9a 100644
--- a/drivers/pci/controller/mobiveil/pcie-mobiveil-plat.c
+++ b/drivers/pci/controller/mobiveil/pcie-mobiveil-plat.c
@@ -56,6 +56,5 @@ static struct platform_driver mobiveil_pcie_driver = {
 
 builtin_platform_driver(mobiveil_pcie_driver);
 
-MODULE_LICENSE("GPL v2");
 MODULE_DESCRIPTION("Mobiveil PCIe host controller driver");
 MODULE_AUTHOR("Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>");
diff --git a/drivers/pci/controller/pci-tegra.c b/drivers/pci/controller/pci-tegra.c
index 929f9363e94b..5bb05564d6f8 100644
--- a/drivers/pci/controller/pci-tegra.c
+++ b/drivers/pci/controller/pci-tegra.c
@@ -2814,4 +2814,3 @@ static struct platform_driver tegra_pcie_driver = {
 	.remove = tegra_pcie_remove,
 };
 module_platform_driver(tegra_pcie_driver);
-MODULE_LICENSE("GPL");
diff --git a/drivers/pci/controller/pci-versatile.c b/drivers/pci/controller/pci-versatile.c
index 7991d334e0f1..e9a6758fe2c1 100644
--- a/drivers/pci/controller/pci-versatile.c
+++ b/drivers/pci/controller/pci-versatile.c
@@ -169,4 +169,3 @@ static struct platform_driver versatile_pci_driver = {
 module_platform_driver(versatile_pci_driver);
 
 MODULE_DESCRIPTION("Versatile PCI driver");
-MODULE_LICENSE("GPL v2");
diff --git a/drivers/pci/controller/pcie-hisi-error.c b/drivers/pci/controller/pcie-hisi-error.c
index 7959c9c8d2bc..7d88eb696b06 100644
--- a/drivers/pci/controller/pcie-hisi-error.c
+++ b/drivers/pci/controller/pcie-hisi-error.c
@@ -324,4 +324,3 @@ static struct platform_driver hisi_pcie_error_handler_driver = {
 module_platform_driver(hisi_pcie_error_handler_driver);
 
 MODULE_DESCRIPTION("HiSilicon HIP PCIe controller error handling driver");
-MODULE_LICENSE("GPL v2");
diff --git a/drivers/pci/endpoint/pci-ep-cfs.c b/drivers/pci/endpoint/pci-ep-cfs.c
index d4850bdd837f..4b8ac0ac84d5 100644
--- a/drivers/pci/endpoint/pci-ep-cfs.c
+++ b/drivers/pci/endpoint/pci-ep-cfs.c
@@ -728,4 +728,3 @@ module_exit(pci_ep_cfs_exit);
 
 MODULE_DESCRIPTION("PCI EP CONFIGFS");
 MODULE_AUTHOR("Kishon Vijay Abraham I <kishon@ti.com>");
-MODULE_LICENSE("GPL v2");
diff --git a/drivers/pci/endpoint/pci-epc-core.c b/drivers/pci/endpoint/pci-epc-core.c
index 2542196e8c3d..dd750ad29485 100644
--- a/drivers/pci/endpoint/pci-epc-core.c
+++ b/drivers/pci/endpoint/pci-epc-core.c
@@ -861,4 +861,3 @@ module_exit(pci_epc_exit);
 
 MODULE_DESCRIPTION("PCI EPC Library");
 MODULE_AUTHOR("Kishon Vijay Abraham I <kishon@ti.com>");
-MODULE_LICENSE("GPL v2");
diff --git a/drivers/pci/endpoint/pci-epc-mem.c b/drivers/pci/endpoint/pci-epc-mem.c
index a97b56a6d2db..7dcf6f480b82 100644
--- a/drivers/pci/endpoint/pci-epc-mem.c
+++ b/drivers/pci/endpoint/pci-epc-mem.c
@@ -260,4 +260,3 @@ EXPORT_SYMBOL_GPL(pci_epc_mem_free_addr);
 
 MODULE_DESCRIPTION("PCI EPC Address Space Management");
 MODULE_AUTHOR("Kishon Vijay Abraham I <kishon@ti.com>");
-MODULE_LICENSE("GPL v2");
diff --git a/drivers/pci/endpoint/pci-epf-core.c b/drivers/pci/endpoint/pci-epf-core.c
index 9ed556936f48..2036e38be093 100644
--- a/drivers/pci/endpoint/pci-epf-core.c
+++ b/drivers/pci/endpoint/pci-epf-core.c
@@ -568,4 +568,3 @@ module_exit(pci_epf_exit);
 
 MODULE_DESCRIPTION("PCI EPF Library");
 MODULE_AUTHOR("Kishon Vijay Abraham I <kishon@ti.com>");
-MODULE_LICENSE("GPL v2");
diff --git a/drivers/pci/hotplug/shpchp_core.c b/drivers/pci/hotplug/shpchp_core.c
index 53692b048301..56c7795ed890 100644
--- a/drivers/pci/hotplug/shpchp_core.c
+++ b/drivers/pci/hotplug/shpchp_core.c
@@ -32,7 +32,6 @@ int shpchp_poll_time;
 
 MODULE_AUTHOR(DRIVER_AUTHOR);
 MODULE_DESCRIPTION(DRIVER_DESC);
-MODULE_LICENSE("GPL");
 
 module_param(shpchp_debug, bool, 0644);
 module_param(shpchp_poll_mode, bool, 0644);
Conor Dooley Feb. 16, 2023, 6:01 p.m. UTC | #2
On Thu, Feb 16, 2023 at 11:43:33AM -0600, Bjorn Helgaas wrote:
> [+cc PCI folks, who got the patches but not this cover letter, and
> participants from the v1 posting]

Thanks Bjorn..

> On Thu, Feb 16, 2023 at 03:24:03PM +0000, Nick Alcock wrote:
> > This series, based on current modules-next, is part of a treewide cleanup
> > suggested by Luis Chamberlain, to remove the LICENSE_MODULE usage from
> > files/objects that are not tristate.  Due to recent changes to kbuild, these
> > uses are now problematic.  See the commit logs for more details.
> > 
> > (The commit log prefixes and Cc lists are automatically determined using
> > the script mentioned below.  I've eyeballed them, and they seem reasonable:
> > my apologies if they are not.)
> > 
> > This is a small initial tranche to see if the general approach is valid:
> > larger tranches can follow if desired and if these patches seem OK.
> > I'll be sending a second 24-patch tranche in a few hours if this
> > one meets with general approval.
> > 
> > (In total, there are 121 patches in this series.)
> > 
> > 
> > Differences from v1:
> >  - just remove MODULE_LICENSE, don't comment it out
> >  - Cc: paid maintainers as well as unpaid ones
> >  - improvements to the prefix determination code (notable in
> >    PCI: versatile in particular)
> > 
> > The series at a whole can be found here:
> >   https://github.com/nickalcock/linux module-license
> > 
> > The patch splitter (not for upstreaming!) used to prepare these
> > commits can be found here:
> >   https://github.com/nickalcock/linux mass-split
> > 
> > Cc: Luis Chamberlain <mcgrof@kernel.org>
> > Cc: linux-modules@vger.kernel.org
> > Cc: linux-kernel@vger.kernel.org
> > 
> > Nick Alcock (7):
> >   kbuild, PCI: versatile: remove MODULE_LICENSE in non-modules
> >   kbuild, PCI: mobiveil: remove MODULE_LICENSE in non-modules
> >   kbuild, PCI: tegra: remove MODULE_LICENSE in non-modules
> >   kbuild, PCI: endpoint: remove MODULE_LICENSE in non-modules
> >   kbuild, PCI: hip: remove MODULE_LICENSE in non-modules
> >   kbuild, shpchp: remove MODULE_LICENSE in non-modules
> >   kbuild, PCI: dwc: remove MODULE_LICENSE in non-modules
> > 
> >  drivers/pci/controller/dwc/pcie-histb.c              | 1 -
> >  drivers/pci/controller/mobiveil/pcie-mobiveil-plat.c | 1 -
> >  drivers/pci/controller/pci-tegra.c                   | 1 -
> >  drivers/pci/controller/pci-versatile.c               | 1 -
> >  drivers/pci/controller/pcie-hisi-error.c             | 1 -
> >  drivers/pci/endpoint/pci-ep-cfs.c                    | 1 -
> >  drivers/pci/endpoint/pci-epc-core.c                  | 1 -
> >  drivers/pci/endpoint/pci-epc-mem.c                   | 1 -
> >  drivers/pci/endpoint/pci-epf-core.c                  | 1 -
> >  drivers/pci/hotplug/shpchp_core.c                    | 1 -
> >  10 files changed, 10 deletions(-)
> 
> I squashed these and applied to pci/kbuild for v6.3, thanks!
> 
> I added examples from the v1 posting to the commit log; let me know if
> I got anything wrong:

I noticed that (as requested!) Nick dropped the change to the microchip
driver.
Would you like me to resend patch 3/11 of [1] to clear the decks of
"incorrect" MODULE_LICENSE usage?

Thanks,
Conor.

1 - https://lore.kernel.org/linux-pci/20230111125323.1911373-4-daire.mcnamara@microchip.com/
Bjorn Helgaas Feb. 16, 2023, 7:16 p.m. UTC | #3
On Thu, Feb 16, 2023 at 06:01:23PM +0000, Conor Dooley wrote:
> On Thu, Feb 16, 2023 at 11:43:33AM -0600, Bjorn Helgaas wrote:

> ...
> I noticed that (as requested!) Nick dropped the change to the microchip
> driver.
> Would you like me to resend patch 3/11 of [1] to clear the decks of
> "incorrect" MODULE_LICENSE usage?

Thanks for noticing that.  I removed MODULE_LICENSE from
pcie-microchip-host.c for now.  We can easily add it back when [1] is
merged.

I haven't talked to Lorenzo about the series [1] is part of, but just
from the mailing list traffic, it looks like there are a couple open
questions (MSI config probing [2], "ranges" and address translation
stuff [3,4]), so that will likely miss this merge window.

Bjorn

> 1 - https://lore.kernel.org/linux-pci/20230111125323.1911373-4-daire.mcnamara@microchip.com/

[2] https://lore.kernel.org/r/Y9uiWscjKQpD7JvE@lpieralisi
[3] https://lore.kernel.org/r/Y9uebWEvuJYO31j1@lpieralisi
[4] https://lore.kernel.org/r/8dfc14be-a978-d84b-52e4-d421599fc783@arm.com
Nick Alcock Feb. 16, 2023, 7:20 p.m. UTC | #4
[Cc: slashed]

On 16 Feb 2023, Bjorn Helgaas said:

> [+cc PCI folks, who got the patches but not this cover letter, and
> participants from the v1 posting]

Oh I'm sorry! I think I need to arrange to augment the cover letter with
Cc:s too, to add all the mailing lists to it. This is extra-hard if (as
here) I'm splitting up the original patch series into pieces...

... or just try to do without a cover letter, and put all the stuff
which should be in the cover letter into the bit after the commit log
text. That might be simpler, since I could just stuff it unconditionally
into every mail without alteration.
Conor Dooley Feb. 16, 2023, 11:38 p.m. UTC | #5
On Thu, Feb 16, 2023 at 01:16:32PM -0600, Bjorn Helgaas wrote:
> On Thu, Feb 16, 2023 at 06:01:23PM +0000, Conor Dooley wrote:
> > On Thu, Feb 16, 2023 at 11:43:33AM -0600, Bjorn Helgaas wrote:
> 
> > ...
> > I noticed that (as requested!) Nick dropped the change to the microchip
> > driver.
> > Would you like me to resend patch 3/11 of [1] to clear the decks of
> > "incorrect" MODULE_LICENSE usage?
> 
> Thanks for noticing that.  I removed MODULE_LICENSE from
> pcie-microchip-host.c for now.  We can easily add it back when [1] is
> merged.
> 
> I haven't talked to Lorenzo about the series [1] is part of, but just
> from the mailing list traffic, it looks like there are a couple open
> questions (MSI config probing [2], "ranges" and address translation
> stuff [3,4]), so that will likely miss this merge window.

Yah, I know the series itself is going to miss the mw, which is why I
mentioned resending 3/11 specifically. It's grand though, will just have
to add the license back when the series gets respun.

> > 1 - https://lore.kernel.org/linux-pci/20230111125323.1911373-4-daire.mcnamara@microchip.com/
> 
> [2] https://lore.kernel.org/r/Y9uiWscjKQpD7JvE@lpieralisi
> [3] https://lore.kernel.org/r/Y9uebWEvuJYO31j1@lpieralisi
> [4] https://lore.kernel.org/r/8dfc14be-a978-d84b-52e4-d421599fc783@arm.com