Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src-draft/trunk]: src/sys/dev/usb Better way of ensureing that asynchronous ...



details:   https://anonhg.NetBSD.org/src-all/rev/adef798d3561
branches:  trunk
changeset: 368819:adef798d3561
user:      Nathanial Sloss <nat%netbsd.org@localhost>
date:      Fri Aug 05 23:30:49 2022 +1000

description:
Better way of ensureing that asynchronous events are complete.

diffstat:

 sys/dev/usb/if_urtwn.c |  10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diffs (43 lines):

diff -r 4d949ead9186 -r adef798d3561 sys/dev/usb/if_urtwn.c
--- a/sys/dev/usb/if_urtwn.c    Fri Aug 05 23:29:29 2022 +1000
+++ b/sys/dev/usb/if_urtwn.c    Fri Aug 05 23:30:49 2022 +1000
@@ -258,7 +258,7 @@
 static void    urtwn_task(void *);
 static void    urtwn_do_async(struct urtwn_softc *,
                        void (*)(struct urtwn_softc *, void *), void *, int);
-static void    urtwn_wait_async(struct urtwn_softc *);
+//static void  urtwn_wait_async(struct urtwn_softc *);
 static int     urtwn_write_region_1(struct urtwn_softc *, uint16_t, uint8_t *,
                    int);
 static void    urtwn_write_1(struct urtwn_softc *, uint16_t, uint8_t);
@@ -748,7 +748,7 @@
        splx(s);
 }
 
-static void
+__unused static void
 urtwn_wait_async(struct urtwn_softc *sc)
 {
 
@@ -1724,6 +1724,10 @@
            nstate, arg, ostate, 0);
 
        callout_stop(&sc->sc_calib_to);
+       if (sc->sc_uw.uw_pri != NULL)
+               usb_rem_task_wait(sc->sc_uw.uw_udev, &sc->sc_task,
+                   USB_TASKQ_DRIVER, usbwifi_mutex_ic(&sc->sc_uw));
+
 
        switch (ostate) {
        case IEEE80211_S_INIT:
@@ -4610,8 +4614,10 @@
        /* Set default channel. */
        urtwn_set_chan(sc, ic->ic_curchan);
 
+#if 0
        // XXXX can't do that here while core is locked?
        urtwn_wait_async(sc);
+#endif
 
        return 0;
 



Home | Main Index | Thread Index | Old Index