svn commit: r277884 - head/sys/dev/sfxge

Andrew Rybchenko arybchik at FreeBSD.org
Thu Jan 29 18:50:26 UTC 2015


Author: arybchik
Date: Thu Jan 29 18:50:25 2015
New Revision: 277884
URL: https://svnweb.freebsd.org/changeset/base/277884

Log:
  sfxge: Change sfxge_ev_qpoll() proto to avoid EVQ pointers array access
  
  It was the only place on data path where sc->evq array is accessed.
  
  Sponsored by:   Solarflare Communications, Inc.
  Approved by:    gnn (mentor)

Modified:
  head/sys/dev/sfxge/sfxge.h
  head/sys/dev/sfxge/sfxge_ev.c
  head/sys/dev/sfxge/sfxge_intr.c

Modified: head/sys/dev/sfxge/sfxge.h
==============================================================================
--- head/sys/dev/sfxge/sfxge.h	Thu Jan 29 18:44:21 2015	(r277883)
+++ head/sys/dev/sfxge/sfxge.h	Thu Jan 29 18:50:25 2015	(r277884)
@@ -281,7 +281,7 @@ extern int sfxge_ev_init(struct sfxge_so
 extern void sfxge_ev_fini(struct sfxge_softc *sc);
 extern int sfxge_ev_start(struct sfxge_softc *sc);
 extern void sfxge_ev_stop(struct sfxge_softc *sc);
-extern int sfxge_ev_qpoll(struct sfxge_softc *sc, unsigned int index);
+extern int sfxge_ev_qpoll(struct sfxge_evq *evq);
 
 /*
  * From sfxge_intr.c.

Modified: head/sys/dev/sfxge/sfxge_ev.c
==============================================================================
--- head/sys/dev/sfxge/sfxge_ev.c	Thu Jan 29 18:44:21 2015	(r277883)
+++ head/sys/dev/sfxge/sfxge_ev.c	Thu Jan 29 18:50:25 2015	(r277884)
@@ -569,13 +569,10 @@ static const efx_ev_callbacks_t sfxge_ev
 
 
 int
-sfxge_ev_qpoll(struct sfxge_softc *sc, unsigned int index)
+sfxge_ev_qpoll(struct sfxge_evq *evq)
 {
-	struct sfxge_evq *evq;
 	int rc;
 
-	evq = sc->evq[index];
-
 	mtx_lock(&evq->lock);
 
 	if (evq->init_state != SFXGE_EVQ_STARTING &&

Modified: head/sys/dev/sfxge/sfxge_intr.c
==============================================================================
--- head/sys/dev/sfxge/sfxge_intr.c	Thu Jan 29 18:44:21 2015	(r277883)
+++ head/sys/dev/sfxge/sfxge_intr.c	Thu Jan 29 18:50:25 2015	(r277884)
@@ -110,9 +110,8 @@ static void
 sfxge_intr_line(void *arg)
 {
 	struct sfxge_evq *evq = arg;
-	struct sfxge_softc *sc = evq->sc;
 
-	(void)sfxge_ev_qpoll(sc, 0);
+	(void)sfxge_ev_qpoll(evq);
 }
 
 static void
@@ -146,7 +145,7 @@ sfxge_intr_message(void *arg)
 		return;
 	}
 
-	(void)sfxge_ev_qpoll(sc, index);
+	(void)sfxge_ev_qpoll(evq);
 }
 
 static int


More information about the svn-src-head mailing list