Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Mar 2015 00:08:59 -0700
From:      Alfred Perlstein <bright@mu.org>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "src-committers@freebsd.org" <src-committers@freebsd.org>, "freebsd-wireless@freebsd.org" <freebsd-wireless@freebsd.org>
Subject:   Re: svn commit: r280120 - head/sys/dev/wpi
Message-ID:  <148C400A-4E75-48ED-9135-70C3E07E0E1D@mu.org>
In-Reply-To: <CAJ-Vmomu68aT0fveRvkUKW-DeMdsBpLCP0tH%2B3NPySCuyK3oTQ@mail.gmail.com>
References:  <201503152132.t2FLWBaw095774@svn.freebsd.org> <CAJ-Vmomu68aT0fveRvkUKW-DeMdsBpLCP0tH%2B3NPySCuyK3oTQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Just use github, you can then just follow my directions on the =
https://wiki.freebsd.org/GitWorkflow page.

you can commit them as individual commits if you would like or make a =
giant squash commit.

Better would really be to replay all the commits into an svn branch, =
then make a single svn merge commit.  Although svn is meh.

-Alfred

On Mar 15, 2015, at 2:35 PM, Adrian Chadd wrote:

> .. promise I'm done for now.
>=20
> (God, it'd be nice to use git, or some web ui that lets me batch
> review and commit things like this.)
>=20
>=20
> -a
>=20
>=20
> On 15 March 2015 at 14:32, Adrian Chadd <adrian@freebsd.org> wrote:
>> Author: adrian
>> Date: Sun Mar 15 21:32:11 2015
>> New Revision: 280120
>> URL: https://svnweb.freebsd.org/changeset/base/280120
>>=20
>> Log:
>>  Add a new taskqueue (device specific, not net80211 ic->tq); use it =
for
>>  device restart.
>>=20
>>  (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.)
>>=20
>>  PR:           kern/197143
>>  Submitted by: Andriy Voskoboinyk <s3erios@gmail.com>
>>=20
>> Modified:
>>  head/sys/dev/wpi/if_wpi.c
>>  head/sys/dev/wpi/if_wpivar.h
>>=20
>> Modified: head/sys/dev/wpi/if_wpi.c
>> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
>> --- 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);
>>=20
>> +       sc->sc_tq =3D taskqueue_create("wpi_taskq", M_WAITOK,
>> +           taskqueue_thread_enqueue, &sc->sc_tq);
>> +       error =3D taskqueue_start_threads(&sc->sc_tq, 1, 0, =
"wpi_taskq");
>> +       if (error !=3D 0) {
>> +               device_printf(dev, "can't start threads, error %d\n", =
error);
>> +               goto fail;
>> +       }
>> +
>>        wpi_sysctlattach(sc);
>>=20
>>        /*
>> @@ -688,6 +696,9 @@ wpi_detach(device_t dev)
>>=20
>>                wpi_stop(sc);
>>=20
>> +               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);
>>=20
>>        if (r1 & (WPI_INT_SW_ERR | WPI_INT_HW_ERR)) {
>> -               struct ieee80211com *ic =3D 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;
>>        }
>>=20
>> @@ -2950,10 +2959,9 @@ wpi_scan_timeout(void *arg)
>> {
>>        struct wpi_softc *sc =3D arg;
>>        struct ifnet *ifp =3D sc->sc_ifp;
>> -       struct ieee80211com *ic =3D ifp->if_l2com;
>>=20
>>        if_printf(ifp, "scan timeout\n");
>> -       ieee80211_runtask(ic, &sc->sc_reinittask);
>> +       taskqueue_enqueue(sc->sc_tq, &sc->sc_reinittask);
>> }
>>=20
>> static void
>> @@ -2961,11 +2969,10 @@ wpi_tx_timeout(void *arg)
>> {
>>        struct wpi_softc *sc =3D arg;
>>        struct ifnet *ifp =3D sc->sc_ifp;
>> -       struct ieee80211com *ic =3D ifp->if_l2com;
>>=20
>>        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);
>> }
>>=20
>> static int
>>=20
>> Modified: head/sys/dev/wpi/if_wpivar.h
>> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
>> --- 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;
>>=20
>> +       /* Taskqueue */
>> +       struct taskqueue        *sc_tq;
>> +
>>        /* Eeprom info. */
>>        uint8_t                 cap;
>>        uint16_t                rev;
>>=20
>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?148C400A-4E75-48ED-9135-70C3E07E0E1D>