Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394...
[pandora-kernel.git] / drivers / pci / search.c
index 2f13eba..45f2b20 100644 (file)
@@ -413,6 +413,24 @@ exit:
        return dev;
 }
 
+const struct pci_device_id *pci_find_present(const struct pci_device_id *ids)
+{
+       struct pci_dev *dev;
+       const struct pci_device_id *found = NULL;
+
+       WARN_ON(in_interrupt());
+       down_read(&pci_bus_sem);
+       while (ids->vendor || ids->subvendor || ids->class_mask) {
+               list_for_each_entry(dev, &pci_devices, global_list) {
+                       if ((found = pci_match_one_device(ids, dev)) != NULL)
+                               break;
+               }
+               ids++;
+       }
+       up_read(&pci_bus_sem);
+       return found;
+}
+
 /**
  * pci_dev_present - Returns 1 if device matching the device list is present, 0 if not.
  * @ids: A pointer to a null terminated list of struct pci_device_id structures
@@ -426,25 +444,11 @@ exit:
  */
 int pci_dev_present(const struct pci_device_id *ids)
 {
-       struct pci_dev *dev;
-       int found = 0;
-
-       WARN_ON(in_interrupt());
-       down_read(&pci_bus_sem);
-       while (ids->vendor || ids->subvendor || ids->class_mask) {
-               list_for_each_entry(dev, &pci_devices, global_list) {
-                       if (pci_match_one_device(ids, dev)) {
-                               found = 1;
-                               goto exit;
-                       }
-               }
-               ids++;
-       }
-exit:
-       up_read(&pci_bus_sem);
-       return found;
+       return pci_find_present(ids) == NULL ? 0 : 1;
 }
+
 EXPORT_SYMBOL(pci_dev_present);
+EXPORT_SYMBOL(pci_find_present);
 
 EXPORT_SYMBOL(pci_find_device);
 EXPORT_SYMBOL(pci_find_device_reverse);