svn commit: r191573 - head/sys/dev/ata

Jung-uk Kim jkim at FreeBSD.org
Mon Apr 27 18:10:43 UTC 2009


Author: jkim
Date: Mon Apr 27 18:10:42 2009
New Revision: 191573
URL: http://svn.freebsd.org/changeset/base/191573

Log:
  Reduce excessive pci_get_devid() and pci_get_revid() calls
  on the same PCI device while device probing.

Modified:
  head/sys/dev/ata/ata-pci.c

Modified: head/sys/dev/ata/ata-pci.c
==============================================================================
--- head/sys/dev/ata/ata-pci.c	Mon Apr 27 17:42:02 2009	(r191572)
+++ head/sys/dev/ata/ata-pci.c	Mon Apr 27 18:10:42 2009	(r191573)
@@ -759,13 +759,17 @@ ata_set_desc(device_t dev)
 struct ata_chip_id *
 ata_match_chip(device_t dev, struct ata_chip_id *index)
 {
+    uint32_t devid;
+    uint8_t revid;
+
+    devid = pci_get_devid(dev);
+    revid = pci_get_revid(dev);
     while (index->chipid != 0) {
-	if (pci_get_devid(dev) == index->chipid &&
-	    pci_get_revid(dev) >= index->chiprev)
-	    return index;
+	if (devid == index->chipid && revid >= index->chiprev)
+	    return (index);
 	index++;
     }
-    return NULL;
+    return (NULL);
 }
 
 struct ata_chip_id *


More information about the svn-src-head mailing list