|
@@ -99,7 +99,7 @@ static void __init efika_pcisetup(void)
|
|
if (bus_range == NULL || len < 2 * sizeof(int)) {
|
|
if (bus_range == NULL || len < 2 * sizeof(int)) {
|
|
printk(KERN_WARNING EFIKA_PLATFORM_NAME
|
|
printk(KERN_WARNING EFIKA_PLATFORM_NAME
|
|
": Can't get bus-range for %s\n", pcictrl->full_name);
|
|
": Can't get bus-range for %s\n", pcictrl->full_name);
|
|
- return;
|
|
|
|
|
|
+ goto out_put;
|
|
}
|
|
}
|
|
|
|
|
|
if (bus_range[1] == bus_range[0])
|
|
if (bus_range[1] == bus_range[0])
|
|
@@ -111,12 +111,12 @@ static void __init efika_pcisetup(void)
|
|
printk(" controlled by %s\n", pcictrl->full_name);
|
|
printk(" controlled by %s\n", pcictrl->full_name);
|
|
printk("\n");
|
|
printk("\n");
|
|
|
|
|
|
- hose = pcibios_alloc_controller(of_node_get(pcictrl));
|
|
|
|
|
|
+ hose = pcibios_alloc_controller(pcictrl);
|
|
if (!hose) {
|
|
if (!hose) {
|
|
printk(KERN_WARNING EFIKA_PLATFORM_NAME
|
|
printk(KERN_WARNING EFIKA_PLATFORM_NAME
|
|
": Can't allocate PCI controller structure for %s\n",
|
|
": Can't allocate PCI controller structure for %s\n",
|
|
pcictrl->full_name);
|
|
pcictrl->full_name);
|
|
- return;
|
|
|
|
|
|
+ goto out_put;
|
|
}
|
|
}
|
|
|
|
|
|
hose->first_busno = bus_range[0];
|
|
hose->first_busno = bus_range[0];
|
|
@@ -124,6 +124,9 @@ static void __init efika_pcisetup(void)
|
|
hose->ops = &rtas_pci_ops;
|
|
hose->ops = &rtas_pci_ops;
|
|
|
|
|
|
pci_process_bridge_OF_ranges(hose, pcictrl, 0);
|
|
pci_process_bridge_OF_ranges(hose, pcictrl, 0);
|
|
|
|
+ return;
|
|
|
|
+out_put:
|
|
|
|
+ of_node_put(pcictrl);
|
|
}
|
|
}
|
|
|
|
|
|
#else
|
|
#else
|