Date: Sun, 6 Aug 2006 13:57:01 GMT From: Paolo Pisati <piso@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 103339 for review Message-ID: <200608061357.k76Dv1bA076115@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=103339 Change 103339 by piso@piso_newluxor on 2006/08/06 13:56:46 Re got its filter too. Affected files ... .. //depot/projects/soc2006/intr_filter/dev/re/if_re.c#8 edit .. //depot/projects/soc2006/intr_filter/pci/if_rlreg.h#4 edit Differences ... ==== //depot/projects/soc2006/intr_filter/dev/re/if_re.c#8 (text+ko) ==== @@ -241,10 +241,10 @@ static void re_poll (struct ifnet *, enum poll_cmd, int); static void re_poll_locked (struct ifnet *, enum poll_cmd, int); #endif -static int re_intr (void *); +static int re_filter (void *); static void re_tick (void *); static void re_tx_task (void *, int); -static void re_int_task (void *, int); +static void re_int_task (void *); static void re_start (struct ifnet *); static int re_ioctl (struct ifnet *, u_long, caddr_t); static void re_init (void *); @@ -1261,7 +1261,6 @@ IFQ_SET_READY(&ifp->if_snd); TASK_INIT(&sc->rl_txtask, 1, re_tx_task, ifp); - TASK_INIT(&sc->rl_inttask, 0, re_int_task, sc); /* * Call MI attach routine. @@ -1288,7 +1287,7 @@ /* Hook interrupt last to avoid having to lock softc */ error = bus_setup_intr(dev, sc->rl_irq, INTR_TYPE_NET, - re_intr, NULL, sc, &sc->rl_intrhand); + re_filter, re_int_task, sc, &sc->rl_intrhand); if (error) { device_printf(dev, "couldn't set up irq\n"); ether_ifdetach(ifp); @@ -1900,7 +1899,7 @@ #endif /* DEVICE_POLLING */ static int -re_intr(arg) +re_filter(arg) void *arg; { struct rl_softc *sc; @@ -1915,15 +1914,12 @@ return(FILTER_STRAY); CSR_WRITE_2(sc, RL_IMR, 0); - taskqueue_enqueue_fast(taskqueue_fast, &sc->rl_inttask); - - return(FILTER_HANDLED); + return(FILTER_HANDLED | FILTER_SCHEDULE_THREAD); } static void -re_int_task(arg, npending) +re_int_task(arg) void *arg; - int npending; { struct rl_softc *sc; struct ifnet *ifp; @@ -1976,11 +1972,6 @@ RL_UNLOCK(sc); - if ((CSR_READ_2(sc, RL_ISR) & RL_INTRS_CPLUS) || rval) { - taskqueue_enqueue_fast(taskqueue_fast, &sc->rl_inttask); - return; - } - CSR_WRITE_2(sc, RL_IMR, RL_INTRS_CPLUS); return; ==== //depot/projects/soc2006/intr_filter/pci/if_rlreg.h#4 (text+ko) ==== @@ -732,7 +732,6 @@ #endif struct task rl_txtask; - struct task rl_inttask; struct mtx rl_intlock; int rl_txstart;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200608061357.k76Dv1bA076115>