diff options
| author | Qing Li <qingli@FreeBSD.org> | 2011-09-05 17:54:19 +0000 |
|---|---|---|
| committer | Qing Li <qingli@FreeBSD.org> | 2011-09-05 17:54:19 +0000 |
| commit | 62e3af52257a08c21993c702f662609f3f151a2a (patch) | |
| tree | f31486bc47cf00d994e817ba6ce5ccd69e9f1c57 | |
| parent | d334432fd38d563a4852001531638e191387dc9c (diff) | |
Notes
| -rw-r--r-- | sys/dev/ixgbe/ixgbe.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/dev/ixgbe/ixgbe.c b/sys/dev/ixgbe/ixgbe.c index a382a5356c4ef..9a709afcc01a7 100644 --- a/sys/dev/ixgbe/ixgbe.c +++ b/sys/dev/ixgbe/ixgbe.c @@ -3849,6 +3849,8 @@ fail: **********************************************************************/ #define IXGBE_SRRCTL_BSIZEHDRSIZE_SHIFT 2 +#define BSIZEPKT_ROUNDUP ((1<<IXGBE_SRRCTL_BSIZEPKT_SHIFT)-1) + static void ixgbe_initialize_receive_units(struct adapter *adapter) { @@ -3882,7 +3884,7 @@ ixgbe_initialize_receive_units(struct adapter *adapter) hlreg &= ~IXGBE_HLREG0_JUMBOEN; IXGBE_WRITE_REG(hw, IXGBE_HLREG0, hlreg); - bufsz = adapter->rx_mbuf_sz >> IXGBE_SRRCTL_BSIZEPKT_SHIFT; + bufsz = (adapter->rx_mbuf_sz + BSIZEPKT_ROUNDUP) >> IXGBE_SRRCTL_BSIZEPKT_SHIFT; for (int i = 0; i < adapter->num_queues; i++, rxr++) { u64 rdba = rxr->rxdma.dma_paddr; @@ -4300,9 +4302,10 @@ ixgbe_rxeof(struct ix_queue *que, int count) sendmp = rbuf->fmp; rbuf->m_pack = rbuf->fmp = NULL; - if (sendmp != NULL) /* secondary frag */ + if (sendmp != NULL) { /* secondary frag */ + mp->m_flags &= ~M_PKTHDR; sendmp->m_pkthdr.len += mp->m_len; - else { + } else { /* first desc of a non-ps chain */ sendmp = mp; sendmp->m_flags |= M_PKTHDR; |
