Patchwork powerpc: fix annotation of pcibios_claim_one_bus

login
register
mail settings
Submitter Stephen Rothwell
Date June 2, 2009, 12:53 a.m.
Message ID <20090602105353.b4a7e93d.sfr@canb.auug.org.au>
Download mbox | patch
Permalink /patch/27926/
State Accepted
Headers show

Comments

Stephen Rothwell - June 2, 2009, 12:53 a.m.
It was __devinit, but it is also within a CONFIG_HOTPLUG guarded section
of code, so the __devinit does nothing but cause the following warning:

WARNING: vmlinux.o(.text+0x107a8): Section mismatch in reference from the function pcibios_finish_adding_to_bus() to the function .devinit.text:pcibios_claim_one_bus()
The function pcibios_finish_adding_to_bus() references
the function __devinit pcibios_claim_one_bus().
This is often because pcibios_finish_adding_to_bus lacks a __devinit
annotation or the annotation of pcibios_claim_one_bus is wrong.

It is also only (externally) used in arch/powerpc/kernel/of_platform.c
which cannot be built as a module so don't export it.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 arch/powerpc/kernel/pci-common.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
Michael Ellerman - June 2, 2009, 2:06 a.m.
On Tue, 2009-06-02 at 10:53 +1000, Stephen Rothwell wrote:
> It was __devinit, but it is also within a CONFIG_HOTPLUG guarded section
> of code, so the __devinit does nothing but cause the following warning:
> 
> WARNING: vmlinux.o(.text+0x107a8): Section mismatch in reference from the function pcibios_finish_adding_to_bus() to the function .devinit.text:pcibios_claim_one_bus()

Isn't the real problem that the PCI hotplug code is not marked as
__devinit?

cheers
Benjamin Herrenschmidt - June 2, 2009, 3:02 a.m.
On Tue, 2009-06-02 at 12:06 +1000, Michael Ellerman wrote:
> On Tue, 2009-06-02 at 10:53 +1000, Stephen Rothwell wrote:
> > It was __devinit, but it is also within a CONFIG_HOTPLUG guarded section
> > of code, so the __devinit does nothing but cause the following warning:
> > 
> > WARNING: vmlinux.o(.text+0x107a8): Section mismatch in reference from the function pcibios_finish_adding_to_bus() to the function .devinit.text:pcibios_claim_one_bus()
> 
> Isn't the real problem that the PCI hotplug code is not marked as
> __devinit?

I'll take Stephen patch for now. We can do a proper sweep through PCI
hotplug after Kumar is done finishing the 32/64-bit PCI merge...

Cheers,
Ben.

Patch

diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index 4fee63c..5a56e97 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -1505,7 +1505,7 @@  void __init pcibios_resource_survey(void)
  * rest of the code later, for now, keep it as-is as our main
  * resource allocation function doesn't deal with sub-trees yet.
  */
-void __devinit pcibios_claim_one_bus(struct pci_bus *bus)
+void pcibios_claim_one_bus(struct pci_bus *bus)
 {
 	struct pci_dev *dev;
 	struct pci_bus *child_bus;
@@ -1533,7 +1533,6 @@  void __devinit pcibios_claim_one_bus(struct pci_bus *bus)
 	list_for_each_entry(child_bus, &bus->children, node)
 		pcibios_claim_one_bus(child_bus);
 }
-EXPORT_SYMBOL_GPL(pcibios_claim_one_bus);
 
 
 /* pcibios_finish_adding_to_bus