svn commit: r187307 - in stable/6/sys: . dev/bge

Marius Strobl marius at FreeBSD.org
Thu Jan 15 12:13:52 PST 2009


Author: marius
Date: Thu Jan 15 20:13:50 2009
New Revision: 187307
URL: http://svn.freebsd.org/changeset/base/187307

Log:
  MFC: r183281
  
  - Don't read the identifier string from the VPD if there's no chip
    containing an Ethernet address fitted as this is yet another thing
    that fails in that case in order to avoid the one second delay
    until pci_read_vpd_reg() times out.
  - Const'ify the bge_devs array.

Modified:
  stable/6/sys/   (props changed)
  stable/6/sys/dev/bge/if_bge.c

Modified: stable/6/sys/dev/bge/if_bge.c
==============================================================================
--- stable/6/sys/dev/bge/if_bge.c	Thu Jan 15 20:13:22 2009	(r187306)
+++ stable/6/sys/dev/bge/if_bge.c	Thu Jan 15 20:13:50 2009	(r187307)
@@ -134,7 +134,7 @@ MODULE_DEPEND(bge, miibus, 1, 1, 1);
  * ID burned into it, though it will always be overriden by the vendor
  * ID in the EEPROM. Just to be safe, we cover all possibilities.
  */
-static struct bge_type {
+static const struct bge_type {
 	uint16_t	bge_vid;
 	uint16_t	bge_did;
 } bge_devs[] = {
@@ -1855,7 +1855,7 @@ bge_lookup_vendor(uint16_t vid)
 static int
 bge_probe(device_t dev)
 {
-	struct bge_type *t = bge_devs;
+	const struct bge_type *t = bge_devs;
 	struct bge_softc *sc = device_get_softc(dev);
 	uint16_t vid, did;
 
@@ -1877,7 +1877,8 @@ bge_probe(device_t dev)
 #if __FreeBSD_version > 700024
 				const char *pname;
 
-				if (pci_get_vpd_ident(dev, &pname) == 0)
+				if (bge_has_eaddr(sc) &&
+				    pci_get_vpd_ident(dev, &pname) == 0)
 					snprintf(model, 64, "%s", pname);
 				else
 #endif


More information about the svn-src-stable-6 mailing list