diff options
author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2007-04-23 09:47:59 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-04-24 08:12:20 -0400 |
commit | ab4627683a0e4430cb5acb1cd896f08ec5dad90c (patch) | |
tree | 18f8ecf77c03e64d2aca845ec30d398874570ad9 /arch/powerpc | |
parent | 37f01d64d83705f82bb06eac8134acc8ef665565 (diff) |
[POWERPC] pci_32.c: Switch to ref counting PCI API
pci_find_slot isn't hot-plug safe. Move this code to the pci hotplug
safe equivalent and hold a refcount properly while doing
make_one_node_map.
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/kernel/pci_32.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c index 5b05a09a6bdf..f022862de344 100644 --- a/arch/powerpc/kernel/pci_32.c +++ b/arch/powerpc/kernel/pci_32.c | |||
@@ -656,10 +656,13 @@ make_one_node_map(struct device_node* node, u8 pci_bus) | |||
656 | reg = of_get_property(node, "reg", NULL); | 656 | reg = of_get_property(node, "reg", NULL); |
657 | if (!reg) | 657 | if (!reg) |
658 | continue; | 658 | continue; |
659 | dev = pci_find_slot(pci_bus, ((reg[0] >> 8) & 0xff)); | 659 | dev = pci_get_bus_and_slot(pci_bus, ((reg[0] >> 8) & 0xff)); |
660 | if (!dev || !dev->subordinate) | 660 | if (!dev || !dev->subordinate) { |
661 | pci_dev_put(dev); | ||
661 | continue; | 662 | continue; |
663 | } | ||
662 | make_one_node_map(node, dev->subordinate->number); | 664 | make_one_node_map(node, dev->subordinate->number); |
665 | pci_dev_put(dev); | ||
663 | } | 666 | } |
664 | } | 667 | } |
665 | 668 | ||