Date: Tue, 8 Sep 2009 23:25:39 +0000 (UTC) From: Jack F Vogel <jfv@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r196997 - stable/8/sys/net Message-ID: <200909082325.n88NPdDs064553@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jfv Date: Tue Sep 8 23:25:39 2009 New Revision: 196997 URL: http://svn.freebsd.org/changeset/base/196997 Log: Make LRO turned off uncategorically for devices attached to the bridge, rather than just in the case when some device cannot do TSO. Customer tests have shown that even when all devices can do TSO that LRO will cause problems when bridging. Approved by: re Modified: stable/8/sys/net/if_bridge.c Modified: stable/8/sys/net/if_bridge.c ============================================================================== --- stable/8/sys/net/if_bridge.c Tue Sep 8 21:50:34 2009 (r196996) +++ stable/8/sys/net/if_bridge.c Tue Sep 8 23:25:39 2009 (r196997) @@ -171,6 +171,11 @@ __FBSDID("$FreeBSD$"); #define BRIDGE_IFCAPS_MASK (IFCAP_TOE|IFCAP_TSO|IFCAP_TXCSUM) /* + * List of capabilities to strip + */ +#define BRIDGE_IFCAPS_STRIP IFCAP_LRO + +/* * Bridge interface list entry. */ struct bridge_iflist { @@ -802,16 +807,10 @@ bridge_mutecaps(struct bridge_softc *sc) LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { enabled = bif->bif_ifp->if_capenable; + enabled &= ~BRIDGE_IFCAPS_STRIP; /* strip off mask bits and enable them again if allowed */ enabled &= ~BRIDGE_IFCAPS_MASK; enabled |= mask; - /* - * Receive offload can only be enabled if all members also - * support send offload. - */ - if ((enabled & IFCAP_TSO) == 0) - enabled &= ~IFCAP_LRO; - bridge_set_ifcap(sc, bif, enabled); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200909082325.n88NPdDs064553>