summaryrefslogtreecommitdiffstats
path: root/sys/dev/bxe/bxe.c
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2015-07-04 21:50:39 +0000
committerdim <dim@FreeBSD.org>2015-07-04 21:50:39 +0000
commit6f44bd3256388beb23fd03fdf43ad5d53cf43e29 (patch)
tree37590f5c697f4198fdddec33c58aefdef0a5f485 /sys/dev/bxe/bxe.c
parentcea4c167517a0678c7dbf92a0324088dcbac1035 (diff)
parent76b8ff88e56f9ad0639b7e23dd9d1128a0750026 (diff)
downloadFreeBSD-src-6f44bd3256388beb23fd03fdf43ad5d53cf43e29.zip
FreeBSD-src-6f44bd3256388beb23fd03fdf43ad5d53cf43e29.tar.gz
Merge ^/head r284737 through r285152.
Diffstat (limited to 'sys/dev/bxe/bxe.c')
-rw-r--r--sys/dev/bxe/bxe.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/dev/bxe/bxe.c b/sys/dev/bxe/bxe.c
index 0b26d31..f3e5964 100644
--- a/sys/dev/bxe/bxe.c
+++ b/sys/dev/bxe/bxe.c
@@ -6547,10 +6547,14 @@ bxe_free_fp_buffers(struct bxe_softc *sc)
#if __FreeBSD_version >= 800000
if (fp->tx_br != NULL) {
- struct mbuf *m;
/* just in case bxe_mq_flush() wasn't called */
- while ((m = buf_ring_dequeue_sc(fp->tx_br)) != NULL) {
- m_freem(m);
+ if (mtx_initialized(&fp->tx_mtx)) {
+ struct mbuf *m;
+
+ BXE_FP_TX_LOCK(fp);
+ while ((m = buf_ring_dequeue_sc(fp->tx_br)) != NULL)
+ m_freem(m);
+ BXE_FP_TX_UNLOCK(fp);
}
buf_ring_free(fp->tx_br, M_DEVBUF);
fp->tx_br = NULL;
OpenPOWER on IntegriCloud