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