aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-3.8/031-PCI-Remove-__weak-annotation-from-pcibios_get_phb_of.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/patches-3.8/031-PCI-Remove-__weak-annotation-from-pcibios_get_phb_of.patch')
-rw-r--r--target/linux/generic/patches-3.8/031-PCI-Remove-__weak-annotation-from-pcibios_get_phb_of.patch40
1 files changed, 0 insertions, 40 deletions
diff --git a/target/linux/generic/patches-3.8/031-PCI-Remove-__weak-annotation-from-pcibios_get_phb_of.patch b/target/linux/generic/patches-3.8/031-PCI-Remove-__weak-annotation-from-pcibios_get_phb_of.patch
deleted file mode 100644
index ed9777683a..0000000000
--- a/target/linux/generic/patches-3.8/031-PCI-Remove-__weak-annotation-from-pcibios_get_phb_of.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 10629d711ed780470937ecda50d9ffa0e925a4ee Mon Sep 17 00:00:00 2001
-From: Bjorn Helgaas <bhelgaas@google.com>
-Date: Wed, 10 Apr 2013 09:56:54 -0600
-Subject: [PATCH 1/2] PCI: Remove __weak annotation from
- pcibios_get_phb_of_node decl
-
-The __weak annotation on the pcibios_get_phb_of_node() declaration
-causes *every* definition to be marked "weak." The linker then
-selects one based on link order, which may be the wrong one.
-
-Gabor found that on MIPS, the linker selected the generic implementation
-from drivers/pci even though arch/mips supplied a definition without the
-__weak annotation:
-
-$ mipsel-openwrt-linux-readelf -s arch/mips/pci/built-in.o \
- drivers/pci/built-in.o vmlinux.o | grep pcibios_get_phb_of_node
- 86: 0000046c 12 FUNC WEAK DEFAULT 2 pcibios_get_phb_of_node
- 1430: 00012e2c 104 FUNC WEAK DEFAULT 2 pcibios_get_phb_of_node
- 31898: 0017e4ec 104 FUNC WEAK DEFAULT 2 pcibios_get_phb_of_node
-
-This removes the __weak annotation from the pcibios_get_phb_of_node()
-declaration so arch-specific non-weak implementations work reliably.
-
-Suggested-by: Gabor Juhos <juhosg@openwrt.org>
-Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
----
- include/linux/pci.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/include/linux/pci.h
-+++ b/include/linux/pci.h
-@@ -1803,7 +1803,7 @@ extern void pci_set_bus_of_node(struct p
- extern void pci_release_bus_of_node(struct pci_bus *bus);
-
- /* Arch may override this (weak) */
--extern struct device_node * __weak pcibios_get_phb_of_node(struct pci_bus *bus);
-+extern struct device_node *pcibios_get_phb_of_node(struct pci_bus *bus);
-
- static inline struct device_node *
- pci_device_to_OF_node(const struct pci_dev *pdev)