upgrade to Version 8.3.17c with support for more HP NICs
[linux-2.6.git] / drivers / pci / search.c
index b64fec4..ce7dd6e 100644 (file)
@@ -13,7 +13,7 @@
 #include <linux/interrupt.h>
 #include "pci.h"
 
-spinlock_t pci_bus_lock = SPIN_LOCK_UNLOCKED;
+DEFINE_SPINLOCK(pci_bus_lock);
 
 static struct pci_bus * __devinit
 pci_do_find_bus(struct pci_bus* bus, unsigned char busnr)
@@ -166,7 +166,7 @@ static struct pci_dev * pci_find_subsys(unsigned int vendor,
        struct list_head *n;
        struct pci_dev *dev;
 
-       BUG_ON(in_interrupt());
+       WARN_ON(in_interrupt());
        spin_lock(&pci_bus_lock);
        n = from ? from->global_list.next : pci_devices.next;
 
@@ -246,9 +246,9 @@ pci_get_subsys(unsigned int vendor, unsigned int device,
        }
        dev = NULL;
 exit:
-       pci_dev_put(from);
        dev = pci_dev_get(dev);
        spin_unlock(&pci_bus_lock);
+       pci_dev_put(from);
        return dev;
 }
 
@@ -339,9 +339,9 @@ struct pci_dev *pci_get_class(unsigned int class, struct pci_dev *from)
        }
        dev = NULL;
 exit:
-       pci_dev_put(from);
        dev = pci_dev_get(dev);
        spin_unlock(&pci_bus_lock);
+       pci_dev_put(from);
        return dev;
 }
 
@@ -379,6 +379,7 @@ exit:
 EXPORT_SYMBOL(pci_dev_present);
 
 EXPORT_SYMBOL(pci_find_bus);
+EXPORT_SYMBOL(pci_find_next_bus);
 EXPORT_SYMBOL(pci_find_device);
 EXPORT_SYMBOL(pci_find_device_reverse);
 EXPORT_SYMBOL(pci_find_slot);