svn commit: r201446 - head/sys/dev/bge

Pyun YongHyeon yongari at FreeBSD.org
Sun Jan 3 21:49:24 UTC 2010


Author: yongari
Date: Sun Jan  3 21:49:24 2010
New Revision: 201446
URL: http://svn.freebsd.org/changeset/base/201446

Log:
  Fix regression introduced in r198318. BCM5754/BCM5754M uses the
  same ASIC ID of BCM5758 such that r198318 incorecctly enabled TSO
  on BCM5754.BCM5754M controllers. BCM5754/BCM5754M needs a special
  firmware to enable TSO and bge(4) does not support firmware based
  TSO.
  
  Reported by:	ed
  Tested by:	ed

Modified:
  head/sys/dev/bge/if_bge.c

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c	Sun Jan  3 21:27:10 2010	(r201445)
+++ head/sys/dev/bge/if_bge.c	Sun Jan  3 21:49:24 2010	(r201446)
@@ -2642,8 +2642,15 @@ bge_attach(device_t dev)
 	 * the TSO to the controllers that are not affected TSO issues
 	 * (e.g. 5755 or higher).
 	 */
-	if (BGE_IS_5755_PLUS(sc))
-		sc->bge_flags |= BGE_FLAG_TSO;
+	if (BGE_IS_5755_PLUS(sc)) {
+		/*
+		 * BCM5754 and BCM5787 shares the same ASIC id so
+		 * explicit device id check is required.
+		 */
+		if (pci_get_device(dev) != BCOM_DEVICEID_BCM5754 &&
+		    pci_get_device(dev) != BCOM_DEVICEID_BCM5754M)
+			sc->bge_flags |= BGE_FLAG_TSO;
+	}
 
   	/*
 	 * Check if this is a PCI-X or PCI Express device.


More information about the svn-src-head mailing list