Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Apr 2009 17:14:35 +0000 (UTC)
From:      Jack F Vogel <jfv@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r191065 - head/sys/dev/e1000
Message-ID:  <200904141714.n3EHEZqZ014386@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jfv
Date: Tue Apr 14 17:14:35 2009
New Revision: 191065
URL: http://svn.freebsd.org/changeset/base/191065

Log:
  Thanks to Michael Tuexen and Randall Scott for providing a
  few important bug fixes found while they were doing SCTP
  development, and that I somehow lost during the scramble.
  
  Thanks guys!!

Modified:
  head/sys/dev/e1000/if_igb.c

Modified: head/sys/dev/e1000/if_igb.c
==============================================================================
--- head/sys/dev/e1000/if_igb.c	Tue Apr 14 16:48:49 2009	(r191064)
+++ head/sys/dev/e1000/if_igb.c	Tue Apr 14 17:14:35 2009	(r191065)
@@ -94,7 +94,7 @@ int	igb_display_debug_stats = 0;
 /*********************************************************************
  *  Driver version:
  *********************************************************************/
-char igb_driver_version[] = "version - 1.5.2";
+char igb_driver_version[] = "version - 1.5.3";
 
 
 /*********************************************************************
@@ -4002,7 +4002,7 @@ igb_rxeof(struct rx_ring *rxr, int count
 		accept_frame = 1;
 		hlen = plen = len_adj = 0;
 		sendmp = mh = mp = NULL;
-		ptype = (u16)cur->wb.lower.lo_dword.data;
+		ptype = (u16)(cur->wb.lower.lo_dword.data >> 4);
 
 		/* Sync the buffers */
 		bus_dmamap_sync(rxr->rxtag, rxr->rx_buffers[i].map,
@@ -4103,16 +4103,16 @@ igb_rxeof(struct rx_ring *rxr, int count
 					rxr->lmp = mh->m_next;
 				}
 			} else {
-				/* Chain mbuf's together */
-				mh->m_flags &= ~M_PKTHDR;
-				rxr->lmp->m_next = mh;
-				rxr->lmp = rxr->lmp->m_next;
-				rxr->fmp->m_pkthdr.len += mh->m_len;
 				/* Adjust for CRC frag */
 				if (len_adj) {
 					rxr->lmp->m_len -= len_adj;
 					rxr->fmp->m_pkthdr.len -= len_adj;
 				}
+				/* Chain mbuf's together */
+				mh->m_flags &= ~M_PKTHDR;
+				rxr->lmp->m_next = mh;
+				rxr->lmp = rxr->lmp->m_next;
+				rxr->fmp->m_pkthdr.len += mh->m_len;
 			}
 
 			if (eop) {
@@ -4256,7 +4256,7 @@ igb_rx_checksum(u32 staterr, struct mbuf
 #endif
 		/* Did it pass? */
 		if (!(errors & E1000_RXD_ERR_TCPE)) {
-			mp->m_pkthdr.csum_flags = type;
+			mp->m_pkthdr.csum_flags |= type;
 			if (!sctp)
 				mp->m_pkthdr.csum_data = htons(0xffff);
 		}



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