Module Name: src
Committed By: knakahara
Date: Wed May 18 08:59:57 UTC 2016
Modified Files:
src/sys/dev/pci: if_wm.c
Log Message:
Whether Tx interrupt handler kicks if_start() should not depend on wm_txeof()
return value.
To generate a diff of this commit:
cvs rdiff -u -r1.401 -r1.402 src/sys/dev/pci/if_wm.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/if_wm.c
diff -u src/sys/dev/pci/if_wm.c:1.401 src/sys/dev/pci/if_wm.c:1.402
--- src/sys/dev/pci/if_wm.c:1.401 Wed May 18 08:41:42 2016
+++ src/sys/dev/pci/if_wm.c Wed May 18 08:59:56 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: if_wm.c,v 1.401 2016/05/18 08:41:42 knakahara Exp $ */
+/* $NetBSD: if_wm.c,v 1.402 2016/05/18 08:59:56 knakahara Exp $ */
/*
* Copyright (c) 2001, 2002, 2003, 2004 Wasabi Systems, Inc.
@@ -83,7 +83,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.401 2016/05/18 08:41:42 knakahara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.402 2016/05/18 08:59:56 knakahara Exp $");
#ifdef _KERNEL_OPT
#include "opt_net_mpsafe.h"
@@ -7605,7 +7605,6 @@ wm_txintr_msix(void *arg)
struct wm_txqueue *txq = arg;
struct wm_softc *sc = txq->txq_sc;
struct ifnet *ifp = &sc->sc_ethercom.ec_if;
- int handled = 0;
DPRINTF(WM_DEBUG_TX,
("%s: TX: got Tx intr\n", device_xname(sc->sc_dev)));
@@ -7623,7 +7622,7 @@ wm_txintr_msix(void *arg)
goto out;
WM_EVCNT_INCR(&sc->sc_ev_txdw);
- handled = wm_txeof(sc);
+ wm_txeof(sc);
out:
WM_TX_UNLOCK(txq);
@@ -7635,12 +7634,12 @@ out:
else
CSR_WRITE(sc, WMREG_EIMS, 1 << txq->txq_intr_idx);
- if (handled) {
+ if (!IFQ_IS_EMPTY(&ifp->if_snd)) {
/* Try to get more packets going. */
ifp->if_start(ifp);
}
- return handled;
+ return 1;
}
/*