From owner-p4-projects@FreeBSD.ORG Sun Aug 6 13:57:06 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D645E16A4E1; Sun, 6 Aug 2006 13:57:05 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B01B916A4DE for ; Sun, 6 Aug 2006 13:57:05 +0000 (UTC) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 101BE43D7C for ; Sun, 6 Aug 2006 13:57:02 +0000 (GMT) (envelope-from piso@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k76Dv1cb076118 for ; Sun, 6 Aug 2006 13:57:01 GMT (envelope-from piso@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k76Dv1bA076115 for perforce@freebsd.org; Sun, 6 Aug 2006 13:57:01 GMT (envelope-from piso@freebsd.org) Date: Sun, 6 Aug 2006 13:57:01 GMT Message-Id: <200608061357.k76Dv1bA076115@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to piso@freebsd.org using -f From: Paolo Pisati To: Perforce Change Reviews Cc: Subject: PERFORCE change 103339 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Aug 2006 13:57:06 -0000 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;