Message ID | 20090602105353.b4a7e93d.sfr@canb.auug.org.au (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
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
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.
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
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(-)