Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Jul 2013 05:24:59 +0000 (UTC)
From:      Pyun YongHyeon <yongari@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r252442 - stable/9/sys/dev/usb/net
Message-ID:  <201307010524.r615Ox0C079441@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: yongari
Date: Mon Jul  1 05:24:58 2013
New Revision: 252442
URL: http://svnweb.freebsd.org/changeset/base/252442

Log:
  MFC r252143:
    When RX checksum offloading is active, AX88772B will prepend a
    checksum header.  The header contains a received frame length but
    the defined length for AX88772B is different with other ASIX
    controllers.  When the RX checksum is off, AX88772B controller does
    not prepend a checksum header so driver has to use normal header
    length mask.
    This change should fix RX errors when RX checksum offloading is
    off.

Modified:
  stable/9/sys/dev/usb/net/if_axe.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/dev/   (props changed)

Modified: stable/9/sys/dev/usb/net/if_axe.c
==============================================================================
--- stable/9/sys/dev/usb/net/if_axe.c	Mon Jul  1 05:17:55 2013	(r252441)
+++ stable/9/sys/dev/usb/net/if_axe.c	Mon Jul  1 05:24:58 2013	(r252442)
@@ -1354,15 +1354,14 @@ axe_init(struct usb_ether *ue)
 
 	if (AXE_IS_178_FAMILY(sc)) {
 		sc->sc_flags &= ~(AXE_FLAG_STD_FRAME | AXE_FLAG_CSUM_FRAME);
-		if ((sc->sc_flags & AXE_FLAG_772B) != 0)
-			sc->sc_lenmask = AXE_CSUM_HDR_LEN_MASK;
-		else
-			sc->sc_lenmask = AXE_HDR_LEN_MASK;
 		if ((sc->sc_flags & AXE_FLAG_772B) != 0 &&
-		    (ifp->if_capenable & IFCAP_RXCSUM) != 0)
+		    (ifp->if_capenable & IFCAP_RXCSUM) != 0) {
+			sc->sc_lenmask = AXE_CSUM_HDR_LEN_MASK;
 			sc->sc_flags |= AXE_FLAG_CSUM_FRAME;
-		else
+		} else {
+			sc->sc_lenmask = AXE_HDR_LEN_MASK;
 			sc->sc_flags |= AXE_FLAG_STD_FRAME;
+		}
 	}
 
 	/* Configure TX/RX checksum offloading. */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201307010524.r615Ox0C079441>