Skip to content
Permalink
Browse files

Fixes the multiqueue + ALTQ support races by disabling the driver queue.

The actual locking scheme of IGB_LEGACY_TX allows concurrent access to driver queue and ALTQ only disables the queue when it is enabled (whence the reports that adding a ALTQ queue to NIC also fixes the problem).

Disabling the driver queue completly not only fixes the race but also allow the use of the multiqueues together with ALTQ.

Ticket #7166
Ticket #7149
Ticket #6257
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=148807
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=213257
  • Loading branch information...
loos-br committed Feb 13, 2017
1 parent 40b1710 commit 42a5f2897e93d1e42833eac551c64c1373119ff9
Showing with 1 addition and 1 deletion.
  1. +1 −1 sys/dev/e1000/if_igb.c
@@ -3182,7 +3182,7 @@ igb_setup_interface(device_t dev, struct adapter *adapter)
#else
ifp->if_start = igb_start;
IFQ_SET_MAXLEN(&ifp->if_snd, adapter->num_tx_desc - 1);
ifp->if_snd.ifq_drv_maxlen = adapter->num_tx_desc - 1;
ifp->if_snd.ifq_drv_maxlen = 0;
IFQ_SET_READY(&ifp->if_snd);
#endif

0 comments on commit 42a5f28

Please sign in to comment.
You can’t perform that action at this time.