fix a section mismatch on 2.6.30
authorGabor Juhos <juhosg@openwrt.org>
Sun, 19 Jul 2009 12:04:43 +0000 (12:04 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Sun, 19 Jul 2009 12:04:43 +0000 (12:04 +0000)
SVN-Revision: 16918

target/linux/ppc40x/patches-2.6.30/900-backport-fix-annotation-of-pcibios_claim_one_bus.patch [new file with mode: 0644]

diff --git a/target/linux/ppc40x/patches-2.6.30/900-backport-fix-annotation-of-pcibios_claim_one_bus.patch b/target/linux/ppc40x/patches-2.6.30/900-backport-fix-annotation-of-pcibios_claim_one_bus.patch
new file mode 100644 (file)
index 0000000..01a70c5
--- /dev/null
@@ -0,0 +1,42 @@
+From: Stephen Rothwell <sfr@canb.auug.org.au>
+Date: Mon, 1 Jun 2009 14:53:53 +0000 (+0000)
+Subject: powerpc/pci: Fix annotation of pcibios_claim_one_bus
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fbenh%2Fpowerpc.git;a=commitdiff_plain;h=baf75b0a42a1b3f6fca80f8949b6141eaff61b0d
+
+powerpc/pci: Fix annotation of pcibios_claim_one_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>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+---
+
+--- 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(str
+       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