diff options
author | rmacklem <rmacklem@FreeBSD.org> | 2014-07-29 21:05:51 +0000 |
---|---|---|
committer | rmacklem <rmacklem@FreeBSD.org> | 2014-07-29 21:05:51 +0000 |
commit | d6fd29cba9df5ff00d42271359e82c9b540ec1c3 (patch) | |
tree | 041f94feeea90194caa1c56834331d2245bdb280 | |
parent | fe6d9379787eb938c503444ce243caa89cc7b08c (diff) | |
download | FreeBSD-src-d6fd29cba9df5ff00d42271359e82c9b540ec1c3.zip FreeBSD-src-d6fd29cba9df5ff00d42271359e82c9b540ec1c3.tar.gz |
MFC: r268726
Move the "retry:" label so that the calls to m_pullup() are
not done after the call to m_defrag(). This fixes a problem
where m_pullup() would prepend an mbuf to the list created
by m_defrag() making the chain greater than 32 again.
-rw-r--r-- | sys/dev/e1000/if_em.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index fc24abe..cc8b34e 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -1830,7 +1830,6 @@ em_xmit(struct tx_ring *txr, struct mbuf **m_headp) int nsegs, i, j, first, last = 0; int error, do_tso, tso_desc = 0, remap = 1; -retry: m_head = *m_headp; txd_upper = txd_lower = txd_used = txd_saved = 0; do_tso = ((m_head->m_pkthdr.csum_flags & CSUM_TSO) != 0); @@ -1956,6 +1955,7 @@ retry: tx_buffer_mapped = tx_buffer; map = tx_buffer->map; +retry: error = bus_dmamap_load_mbuf_sg(txr->txtag, map, *m_headp, segs, &nsegs, BUS_DMA_NOWAIT); |