Module Name: src
Committed By: msaitoh
Date: Thu Feb 16 08:01:11 UTC 2017
Modified Files:
src/sys/dev/pci/ixgbe: ixgbe.c ixv.c
Log Message:
Do if_snd check even if IXGBE_LEGACY_TX is used. It's used by ALTQ.
To generate a diff of this commit:
cvs rdiff -u -r1.77 -r1.78 src/sys/dev/pci/ixgbe/ixgbe.c
cvs rdiff -u -r1.53 -r1.54 src/sys/dev/pci/ixgbe/ixv.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/pci/ixgbe/ixgbe.c
diff -u src/sys/dev/pci/ixgbe/ixgbe.c:1.77 src/sys/dev/pci/ixgbe/ixgbe.c:1.78
--- src/sys/dev/pci/ixgbe/ixgbe.c:1.77 Thu Feb 16 07:58:21 2017
+++ src/sys/dev/pci/ixgbe/ixgbe.c Thu Feb 16 08:01:11 2017
@@ -59,7 +59,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
/*$FreeBSD: head/sys/dev/ixgbe/if_ix.c 302384 2016-07-07 03:39:18Z sbruno $*/
-/*$NetBSD: ixgbe.c,v 1.77 2017/02/16 07:58:21 msaitoh Exp $*/
+/*$NetBSD: ixgbe.c,v 1.78 2017/02/16 08:01:11 msaitoh Exp $*/
#include "opt_inet.h"
#include "opt_inet6.h"
@@ -1572,10 +1572,11 @@ ixgbe_handle_que(void *context)
#ifndef IXGBE_LEGACY_TX
if (pcq_peek(txr->txr_interq) != NULL)
ixgbe_mq_start_locked(ifp, txr);
-#else
- if (!IFQ_IS_EMPTY(&ifp->if_snd))
- ixgbe_start_locked(txr, ifp);
#endif
+ /* Only for queue 0 */
+ if ((&adapter->queues[0] == que)
+ && (!IFQ_IS_EMPTY(&ifp->if_snd)))
+ ixgbe_start_locked(txr, ifp);
IXGBE_TX_UNLOCK(txr);
}
Index: src/sys/dev/pci/ixgbe/ixv.c
diff -u src/sys/dev/pci/ixgbe/ixv.c:1.53 src/sys/dev/pci/ixgbe/ixv.c:1.54
--- src/sys/dev/pci/ixgbe/ixv.c:1.53 Mon Feb 13 10:37:37 2017
+++ src/sys/dev/pci/ixgbe/ixv.c Thu Feb 16 08:01:11 2017
@@ -31,7 +31,7 @@
******************************************************************************/
/*$FreeBSD: head/sys/dev/ixgbe/if_ixv.c 302384 2016-07-07 03:39:18Z sbruno $*/
-/*$NetBSD: ixv.c,v 1.53 2017/02/13 10:37:37 msaitoh Exp $*/
+/*$NetBSD: ixv.c,v 1.54 2017/02/16 08:01:11 msaitoh Exp $*/
#include "opt_inet.h"
#include "opt_inet6.h"
@@ -886,10 +886,11 @@ ixv_handle_que(void *context)
#ifndef IXGBE_LEGACY_TX
if (pcq_peek(txr->txr_interq) != NULL)
ixgbe_mq_start_locked(ifp, txr);
-#else
- if (!IFQ_IS_EMPTY(&ifp->if_snd))
- ixgbe_start_locked(txr, ifp);
#endif
+ /* Only for queue 0 */
+ if ((&adapter->queues[0] == que)
+ && (!IFQ_IS_EMPTY(&ifp->if_snd)))
+ ixgbe_start_locked(txr, ifp);
IXGBE_TX_UNLOCK(txr);
if (more) {
adapter->req.ev_count++;