summaryrefslogtreecommitdiffstats
path: root/sys/dev/mxge/if_mxge.c
diff options
context:
space:
mode:
authormlaier <mlaier@FreeBSD.org>2010-02-13 16:04:58 +0000
committermlaier <mlaier@FreeBSD.org>2010-02-13 16:04:58 +0000
commitb056acb8640e378c0d878874ce7f56a67b32ac83 (patch)
tree2bbb3c25e16999b1fed53dc0860bb11438c41e07 /sys/dev/mxge/if_mxge.c
parent84d671e3911041ffcdd18cb939006fec60e0abec (diff)
downloadFreeBSD-src-b056acb8640e378c0d878874ce7f56a67b32ac83.zip
FreeBSD-src-b056acb8640e378c0d878874ce7f56a67b32ac83.tar.gz
Fix drbr and altq interaction:
- introduce drbr_needs_enqueue that returns whether the interface/br needs an enqueue operation: returns true if altq is enabled or there are already packets in the ring (as we need to maintain packet order) - update all drbr consumers - fix drbr_flush - avoid using the driver queue (IFQ_DRV_*) in the altq case as the multiqueue consumer does not provide enough protection, serialize altq interaction with the main queue lock - make drbr_dequeue_cond work with altq Discussed with: kmacy, yongari, jfv MFC after: 4 weeks
Diffstat (limited to 'sys/dev/mxge/if_mxge.c')
-rw-r--r--sys/dev/mxge/if_mxge.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/mxge/if_mxge.c b/sys/dev/mxge/if_mxge.c
index 219c506..6dcba39 100644
--- a/sys/dev/mxge/if_mxge.c
+++ b/sys/dev/mxge/if_mxge.c
@@ -2249,7 +2249,7 @@ mxge_transmit_locked(struct mxge_slice_state *ss, struct mbuf *m)
return (err);
}
- if (drbr_empty(ifp, tx->br) &&
+ if (!drbr_needs_enqueue(ifp, tx->br) &&
((tx->mask - (tx->req - tx->done)) > tx->max_desc)) {
/* let BPF see it */
BPF_MTAP(ifp, m);
OpenPOWER on IntegriCloud