From owner-freebsd-wireless@FreeBSD.ORG Sun Mar 15 22:11:59 2015 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 668EA3D0 for ; Sun, 15 Mar 2015 22:11:59 +0000 (UTC) Received: from mail-yh0-f43.google.com (mail-yh0-f43.google.com [209.85.213.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 156A2ED4 for ; Sun, 15 Mar 2015 22:11:58 +0000 (UTC) Received: by yhch68 with SMTP id h68so11733261yhc.1 for ; Sun, 15 Mar 2015 15:11:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=9T3cvWjMtPHXmep7TwGOgSOguiIZj4zn62oWMe/XJbk=; b=TO2aTwJ2d43B8MhtzQ7bA/7XgpAvVU+FaPwV/B4burqnGl67bNPfDuJVZc/e8hNSj1 wrsOUzbUUQHxX5V6QaZYzSDPkMs+zNj24turT89Gza1PYzk5vtl4UZCBLxYMTeVgEwTO RysSyaSlNvGXROAGyvx1i+D0rrO0sjcnVIvLBhUKuK/OiFiWaYH4/ealxZ1TKMqigyiW BgigEMoFjCEOb425taiQoYtKtMQra7Ld9HIovxFlnVYqkYndj5cU5zM05/4TSh19zRFN ITBWwD5b1GK/PByhxQQGTruOioJ2CwuElyA/csmRT/pk+d3caAfIRD1IArq4gN9MSVz9 EbSQ== X-Gm-Message-State: ALoCoQnvtLaeDEPKqR3ClXKpnvBip4njZV7KX4xO1Od6XeSQFFsd28MK1VeTJ4c81hqvDfQglehP MIME-Version: 1.0 X-Received: by 10.236.40.74 with SMTP id e50mr59000899yhb.199.1426457512586; Sun, 15 Mar 2015 15:11:52 -0700 (PDT) Received: by 10.170.104.86 with HTTP; Sun, 15 Mar 2015 15:11:52 -0700 (PDT) In-Reply-To: References: <201503152132.t2FLWBaw095774@svn.freebsd.org> Date: Sun, 15 Mar 2015 23:11:52 +0100 Message-ID: Subject: Re: svn commit: r280120 - head/sys/dev/wpi From: Oliver Pinter To: Adrian Chadd Content-Type: text/plain; charset=UTF-8 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , "freebsd-wireless@freebsd.org" X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2015 22:11:59 -0000 On Sun, Mar 15, 2015 at 10:35 PM, Adrian Chadd wrote: > .. promise I'm done for now. > > (God, it'd be nice to use git, or some web ui that lets me batch > review and commit things like this.) http://svnweb.freebsd.org/socsvn/soc2014/op/tools/svn-cherry-pick-from-git.csh?view=markup > > > -a > > > On 15 March 2015 at 14:32, Adrian Chadd wrote: >> Author: adrian >> Date: Sun Mar 15 21:32:11 2015 >> New Revision: 280120 >> URL: https://svnweb.freebsd.org/changeset/base/280120 >> >> Log: >> Add a new taskqueue (device specific, not net80211 ic->tq); use it for >> device restart. >> >> (Committers note - once scan overhaul and a few other things have been >> fixed in net80211 to not block things in the taskqueue, this can disappear >> and the device specific taskqueues in other drivers can also go away.) >> >> PR: kern/197143 >> Submitted by: Andriy Voskoboinyk >> >> Modified: >> head/sys/dev/wpi/if_wpi.c >> head/sys/dev/wpi/if_wpivar.h >> >> Modified: head/sys/dev/wpi/if_wpi.c >> ============================================================================== >> --- head/sys/dev/wpi/if_wpi.c Sun Mar 15 21:30:20 2015 (r280119) >> +++ head/sys/dev/wpi/if_wpi.c Sun Mar 15 21:32:11 2015 (r280120) >> @@ -532,6 +532,14 @@ wpi_attach(device_t dev) >> TASK_INIT(&sc->sc_radioon_task, 0, wpi_radio_on, sc); >> TASK_INIT(&sc->sc_start_task, 0, wpi_start_task, sc); >> >> + sc->sc_tq = taskqueue_create("wpi_taskq", M_WAITOK, >> + taskqueue_thread_enqueue, &sc->sc_tq); >> + error = taskqueue_start_threads(&sc->sc_tq, 1, 0, "wpi_taskq"); >> + if (error != 0) { >> + device_printf(dev, "can't start threads, error %d\n", error); >> + goto fail; >> + } >> + >> wpi_sysctlattach(sc); >> >> /* >> @@ -688,6 +696,9 @@ wpi_detach(device_t dev) >> >> wpi_stop(sc); >> >> + taskqueue_drain_all(sc->sc_tq); >> + taskqueue_free(sc->sc_tq); >> + >> callout_drain(&sc->watchdog_rfkill); >> callout_drain(&sc->tx_timeout); >> callout_drain(&sc->scan_timeout); >> @@ -2387,8 +2398,6 @@ wpi_intr(void *arg) >> WPI_WRITE(sc, WPI_FH_INT, r2); >> >> if (r1 & (WPI_INT_SW_ERR | WPI_INT_HW_ERR)) { >> - struct ieee80211com *ic = ifp->if_l2com; >> - >> device_printf(sc->sc_dev, "fatal firmware error\n"); >> #ifdef WPI_DEBUG >> wpi_debug_registers(sc); >> @@ -2397,7 +2406,7 @@ wpi_intr(void *arg) >> DPRINTF(sc, WPI_DEBUG_HW, >> "(%s)\n", (r1 & WPI_INT_SW_ERR) ? "(Software Error)" : >> "(Hardware Error)"); >> - ieee80211_runtask(ic, &sc->sc_reinittask); >> + taskqueue_enqueue(sc->sc_tq, &sc->sc_reinittask); >> goto end; >> } >> >> @@ -2950,10 +2959,9 @@ wpi_scan_timeout(void *arg) >> { >> struct wpi_softc *sc = arg; >> struct ifnet *ifp = sc->sc_ifp; >> - struct ieee80211com *ic = ifp->if_l2com; >> >> if_printf(ifp, "scan timeout\n"); >> - ieee80211_runtask(ic, &sc->sc_reinittask); >> + taskqueue_enqueue(sc->sc_tq, &sc->sc_reinittask); >> } >> >> static void >> @@ -2961,11 +2969,10 @@ wpi_tx_timeout(void *arg) >> { >> struct wpi_softc *sc = arg; >> struct ifnet *ifp = sc->sc_ifp; >> - struct ieee80211com *ic = ifp->if_l2com; >> >> if_printf(ifp, "device timeout\n"); >> if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); >> - ieee80211_runtask(ic, &sc->sc_reinittask); >> + taskqueue_enqueue(sc->sc_tq, &sc->sc_reinittask); >> } >> >> static int >> >> Modified: head/sys/dev/wpi/if_wpivar.h >> ============================================================================== >> --- head/sys/dev/wpi/if_wpivar.h Sun Mar 15 21:30:20 2015 (r280119) >> +++ head/sys/dev/wpi/if_wpivar.h Sun Mar 15 21:32:11 2015 (r280120) >> @@ -228,6 +228,9 @@ struct wpi_softc { >> struct task sc_radioon_task; >> struct task sc_start_task; >> >> + /* Taskqueue */ >> + struct taskqueue *sc_tq; >> + >> /* Eeprom info. */ >> uint8_t cap; >> uint16_t rev; >> > _______________________________________________ > svn-src-head@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org"