- Move vke_softc.sc_kqueue initialization from vke_start() into vke_init()
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 10 Feb 2007 11:32:39 +0000 (11:32 +0000)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 10 Feb 2007 11:32:39 +0000 (11:32 +0000)
- Add missing BPF_MTAP() in vke_start()

sys/dev/virtual/net/if_vke.c

index 60baa29..55d8d3c 100644 (file)
@@ -31,7 +31,7 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  * 
- * $DragonFly: src/sys/dev/virtual/net/if_vke.c,v 1.4 2007/01/15 05:27:28 dillon Exp $
+ * $DragonFly: src/sys/dev/virtual/net/if_vke.c,v 1.5 2007/02/10 11:32:39 sephe Exp $
  */
 
 #include <sys/param.h>
@@ -117,6 +117,10 @@ vke_init(void *xsc)
 
        vke_stop(sc);
 
+       KKASSERT(sc->sc_kqueue == NULL);
+       sc->sc_kqueue = kqueue_add(sc->sc_fd, vke_intr, sc);
+       KKASSERT(sc->sc_kqueue != NULL);
+
        ifp->if_flags |= IFF_RUNNING;
        ifp->if_flags &= ~IFF_OACTIVE;
 
@@ -151,12 +155,9 @@ vke_start(struct ifnet *ifp)
        if ((ifp->if_flags & (IFF_RUNNING | IFF_OACTIVE)) != IFF_RUNNING)
                return;
 
-       if (sc->sc_kqueue == NULL) {
-               sc->sc_kqueue = kqueue_add(sc->sc_fd, vke_intr, sc);
-       }
-
        while ((m = ifq_dequeue(&ifp->if_snd, NULL)) != NULL) {
                m_copydata(m, 0, m->m_pkthdr.len, sc->sc_txbuf);
+               BPF_MTAP(ifp, m);
                write(sc->sc_fd, sc->sc_txbuf, m->m_pkthdr.len);
                m_freem(m);
                ifp->if_opackets++;
@@ -405,4 +406,3 @@ vke_init_addr(struct ifnet *ifp, in_addr_t addr, in_addr_t mask)
 
        return ret;
 }
-