diff options
author | jfv <jfv@FreeBSD.org> | 2009-04-14 17:14:35 +0000 |
---|---|---|
committer | jfv <jfv@FreeBSD.org> | 2009-04-14 17:14:35 +0000 |
commit | 3c2ef149c0d38b0bd7cb8ca97a0592cf20262521 (patch) | |
tree | e4831c69be8d7ebe7df71f90c0af50a495170017 | |
parent | ba06a4b03e99a3cad46e210bafb5261048806cb5 (diff) | |
download | FreeBSD-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.c | 16 |
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); } |