summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjfv <jfv@FreeBSD.org>2009-04-14 17:14:35 +0000
committerjfv <jfv@FreeBSD.org>2009-04-14 17:14:35 +0000
commit3c2ef149c0d38b0bd7cb8ca97a0592cf20262521 (patch)
treee4831c69be8d7ebe7df71f90c0af50a495170017
parentba06a4b03e99a3cad46e210bafb5261048806cb5 (diff)
downloadFreeBSD-src-3c2ef149c0d38b0bd7cb8ca97a0592cf20262521.zip
FreeBSD-src-3c2ef149c0d38b0bd7cb8ca97a0592cf20262521.tar.gz
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!!
-rw-r--r--sys/dev/e1000/if_igb.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/sys/dev/e1000/if_igb.c b/sys/dev/e1000/if_igb.c
index 919cab1..706dc5b 100644
--- a/sys/dev/e1000/if_igb.c
+++ b/sys/dev/e1000/if_igb.c
@@ -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 *mp, bool sctp)
#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);
}
OpenPOWER on IntegriCloud