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
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to