vserver 1.9.5.x5
[linux-2.6.git] / arch / sparc / kernel / ebus.c
index 9104114..1754192 100644 (file)
@@ -238,7 +238,7 @@ void __init fill_ebus_device(int node, struct linux_ebus_device *dev)
                child->bus = dev->bus;
                fill_ebus_child(node, &regs[0], child);
 
-               while ((node = prom_getsibling(node))) {
+               while ((node = prom_getsibling(node)) != 0) {
                        child->next = (struct linux_ebus_child *)
                                ebus_alloc(sizeof(struct linux_ebus_child));
 
@@ -275,7 +275,7 @@ void __init ebus_init(void)
                }
        }
 
-       pdev = pci_find_device(PCI_VENDOR_ID_SUN, PCI_DEVICE_ID_SUN_EBUS, 0);
+       pdev = pci_get_device(PCI_VENDOR_ID_SUN, PCI_DEVICE_ID_SUN_EBUS, 0);
        if (!pdev) {
                return;
        }
@@ -330,7 +330,7 @@ void __init ebus_init(void)
                dev->bus = ebus;
                fill_ebus_device(nd, dev);
 
-               while ((nd = prom_getsibling(nd))) {
+               while ((nd = prom_getsibling(nd)) != 0) {
                        dev->next = (struct linux_ebus_device *)
                                ebus_alloc(sizeof(struct linux_ebus_device));
 
@@ -342,7 +342,7 @@ void __init ebus_init(void)
                }
 
        next_ebus:
-               pdev = pci_find_device(PCI_VENDOR_ID_SUN,
+               pdev = pci_get_device(PCI_VENDOR_ID_SUN,
                                       PCI_DEVICE_ID_SUN_EBUS, pdev);
                if (!pdev)
                        break;
@@ -356,4 +356,6 @@ void __init ebus_init(void)
                ebus->next = 0;
                ++num_ebus;
        }
+       if (pdev)
+               pci_dev_put(pdev);
 }