svn commit: r280513 - stable/10/sys/dev/sfxge
Andrew Rybchenko
arybchik at FreeBSD.org
Wed Mar 25 10:17:26 UTC 2015
Author: arybchik
Date: Wed Mar 25 10:17:24 2015
New Revision: 280513
URL: https://svnweb.freebsd.org/changeset/base/280513
Log:
MFC: 277889
sfxge: Add evq argument to sfxge_tx_qcomplete()
It removes necessity to get evq pointer by its index in soft context.
Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)
Modified:
stable/10/sys/dev/sfxge/sfxge_ev.c
stable/10/sys/dev/sfxge/sfxge_tx.c
stable/10/sys/dev/sfxge/sfxge_tx.h
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/dev/sfxge/sfxge_ev.c
==============================================================================
--- stable/10/sys/dev/sfxge/sfxge_ev.c Wed Mar 25 10:16:33 2015 (r280512)
+++ stable/10/sys/dev/sfxge/sfxge_ev.c Wed Mar 25 10:17:24 2015 (r280513)
@@ -63,7 +63,7 @@ sfxge_ev_qcomplete(struct sfxge_evq *evq
("txq->evq_index != index"));
if (txq->pending != txq->completed)
- sfxge_tx_qcomplete(txq);
+ sfxge_tx_qcomplete(txq, evq);
txq = next;
} while (txq != NULL);
@@ -257,7 +257,7 @@ sfxge_ev_tx(void *arg, uint32_t label, u
}
if (txq->pending - txq->completed >= SFXGE_TX_BATCH)
- sfxge_tx_qcomplete(txq);
+ sfxge_tx_qcomplete(txq, evq);
done:
return (evq->tx_done >= SFXGE_EV_BATCH);
Modified: stable/10/sys/dev/sfxge/sfxge_tx.c
==============================================================================
--- stable/10/sys/dev/sfxge/sfxge_tx.c Wed Mar 25 10:16:33 2015 (r280512)
+++ stable/10/sys/dev/sfxge/sfxge_tx.c Wed Mar 25 10:17:24 2015 (r280513)
@@ -105,15 +105,10 @@ static int sfxge_tx_queue_tso(struct sfx
const bus_dma_segment_t *dma_seg, int n_dma_seg);
void
-sfxge_tx_qcomplete(struct sfxge_txq *txq)
+sfxge_tx_qcomplete(struct sfxge_txq *txq, struct sfxge_evq *evq)
{
- struct sfxge_softc *sc;
- struct sfxge_evq *evq;
unsigned int completed;
- sc = txq->sc;
- evq = sc->evq[txq->evq_index];
-
mtx_assert(&evq->lock, MA_OWNED);
completed = txq->completed;
@@ -1146,7 +1141,7 @@ sfxge_tx_qstop(struct sfxge_softc *sc, u
txq->blocked = 0;
txq->pending = txq->added;
- sfxge_tx_qcomplete(txq);
+ sfxge_tx_qcomplete(txq, evq);
KASSERT(txq->completed == txq->added,
("txq->completed != txq->added"));
Modified: stable/10/sys/dev/sfxge/sfxge_tx.h
==============================================================================
--- stable/10/sys/dev/sfxge/sfxge_tx.h Wed Mar 25 10:16:33 2015 (r280512)
+++ stable/10/sys/dev/sfxge/sfxge_tx.h Wed Mar 25 10:17:24 2015 (r280513)
@@ -175,13 +175,15 @@ struct sfxge_txq {
struct sfxge_txq *next;
};
+struct sfxge_evq;
+
extern int sfxge_tx_packet_add(struct sfxge_txq *, struct mbuf *);
extern int sfxge_tx_init(struct sfxge_softc *sc);
extern void sfxge_tx_fini(struct sfxge_softc *sc);
extern int sfxge_tx_start(struct sfxge_softc *sc);
extern void sfxge_tx_stop(struct sfxge_softc *sc);
-extern void sfxge_tx_qcomplete(struct sfxge_txq *txq);
+extern void sfxge_tx_qcomplete(struct sfxge_txq *txq, struct sfxge_evq *evq);
extern void sfxge_tx_qflush_done(struct sfxge_txq *txq);
#ifdef SFXGE_HAVE_MQ
extern void sfxge_if_qflush(struct ifnet *ifp);
More information about the svn-src-all
mailing list