diff options
author | Mark Johnston <markj@FreeBSD.org> | 2020-11-11 18:00:06 +0000 |
---|---|---|
committer | Mark Johnston <markj@FreeBSD.org> | 2020-11-11 18:00:06 +0000 |
commit | 54bf96fb4f167fdbc66232f5ec4a7f3f15d2db8f (patch) | |
tree | 7ebbb1d0cefe895bd46061c8455a365e5f9ceec7 /sys/net/iflib.c | |
parent | 20f02659d6c7c20ee3c5a7cb21aa8caa43764d12 (diff) | |
download | src-54bf96fb4f167fdbc66232f5ec4a7f3f15d2db8f.tar.gz src-54bf96fb4f167fdbc66232f5ec4a7f3f15d2db8f.zip |
iflib: Free full mbuf chains when draining transmit queues
Submitted by: Sai Rajesh Tallamraju <stallamr@netapp.com>
Reviewed by: gallatin, hselasky
MFC after: 1 week
Sponsored by: NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D27179
Notes
Notes:
svn path=/head/; revision=367596
Diffstat (limited to 'sys/net/iflib.c')
-rw-r--r-- | sys/net/iflib.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/net/iflib.c b/sys/net/iflib.c index 7798225f7022..9e7bc7f57b71 100644 --- a/sys/net/iflib.c +++ b/sys/net/iflib.c @@ -1781,7 +1781,7 @@ iflib_txsd_free(if_ctx_t ctx, iflib_txq_t txq, int i) bus_dmamap_unload(txq->ift_tso_buf_tag, txq->ift_sds.ifsd_tso_map[i]); } - m_free(*mp); + m_freem(*mp); DBG_COUNTER_INC(tx_frees); *mp = NULL; } @@ -3660,7 +3660,7 @@ iflib_txq_drain(struct ifmp_ring *r, uint32_t cidx, uint32_t pidx) DBG_COUNTER_INC(txq_drain_flushing); for (i = 0; i < avail; i++) { if (__predict_true(r->items[(cidx + i) & (r->size-1)] != (void *)txq)) - m_free(r->items[(cidx + i) & (r->size-1)]); + m_freem(r->items[(cidx + i) & (r->size-1)]); r->items[(cidx + i) & (r->size-1)] = NULL; } return (avail); |