diff options
author | Anton Blanchard <anton@samba.org> | 2013-10-17 08:19:43 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2013-10-30 01:01:04 -0400 |
commit | 3e7cec6b17d1c915cf4de1a3853f1b4ae0ed26b0 (patch) | |
tree | b6cfb687acebe13074bb62140e0001b248c73611 /arch | |
parent | 411cabf79e684171669ad29a0628c400b4431e95 (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.c | 4 |
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", ®len); | 312 | reg = of_get_property(dn, "reg", ®len); |
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); |