aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2013-10-17 08:19:43 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2013-10-30 01:01:04 -0400
commit3e7cec6b17d1c915cf4de1a3853f1b4ae0ed26b0 (patch)
treeb6cfb687acebe13074bb62140e0001b248c73611 /arch
parent411cabf79e684171669ad29a0628c400b4431e95 (diff)
powerpc: Fix little endian issue in OF PCI scan
This issue was causing the QEMU emulated USB device to fail dring PCI probe. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/kernel/pci_of_scan.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/pci_of_scan.c b/arch/powerpc/kernel/pci_of_scan.c
index 4368ec6fdc8c..ac0b034f9ae0 100644
--- a/arch/powerpc/kernel/pci_of_scan.c
+++ b/arch/powerpc/kernel/pci_of_scan.c
@@ -302,7 +302,7 @@ static struct pci_dev *of_scan_pci_dev(struct pci_bus *bus,
302 struct device_node *dn) 302 struct device_node *dn)
303{ 303{
304 struct pci_dev *dev = NULL; 304 struct pci_dev *dev = NULL;
305 const u32 *reg; 305 const __be32 *reg;
306 int reglen, devfn; 306 int reglen, devfn;
307 307
308 pr_debug(" * %s\n", dn->full_name); 308 pr_debug(" * %s\n", dn->full_name);
@@ -312,7 +312,7 @@ static struct pci_dev *of_scan_pci_dev(struct pci_bus *bus,
312 reg = of_get_property(dn, "reg", &reglen); 312 reg = of_get_property(dn, "reg", &reglen);
313 if (reg == NULL || reglen < 20) 313 if (reg == NULL || reglen < 20)
314 return NULL; 314 return NULL;
315 devfn = (reg[0] >> 8) & 0xff; 315 devfn = (of_read_number(reg, 1) >> 8) & 0xff;
316 316
317 /* Check if the PCI device is already there */ 317 /* Check if the PCI device is already there */
318 dev = pci_get_slot(bus, devfn); 318 dev = pci_get_slot(bus, devfn);