Module Name: src Committed By: skrll Date: Sat Jan 28 12:04:17 UTC 2017
Modified Files: src/sys/dev/usb [nick-nhusb]: TODO.usbmp if_urtwn.c if_urtwnvar.h Log Message: Remove tsleep(9) and wakeup(9) from urtwn(4) To generate a diff of this commit: cvs rdiff -u -r1.8.4.9 -r1.8.4.10 src/sys/dev/usb/TODO.usbmp cvs rdiff -u -r1.34.4.15 -r1.34.4.16 src/sys/dev/usb/if_urtwn.c cvs rdiff -u -r1.8.4.4 -r1.8.4.5 src/sys/dev/usb/if_urtwnvar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/usb/TODO.usbmp diff -u src/sys/dev/usb/TODO.usbmp:1.8.4.9 src/sys/dev/usb/TODO.usbmp:1.8.4.10 --- src/sys/dev/usb/TODO.usbmp:1.8.4.9 Sat Jan 28 10:15:01 2017 +++ src/sys/dev/usb/TODO.usbmp Sat Jan 28 12:04:17 2017 @@ -1,4 +1,4 @@ -$NetBSD: TODO.usbmp,v 1.8.4.9 2017/01/28 10:15:01 skrll Exp $ +$NetBSD: TODO.usbmp,v 1.8.4.10 2017/01/28 12:04:17 skrll Exp $ the majority of the USB MP device interface is documented in usbdivar.h. @@ -97,7 +97,6 @@ splusb drivers: wakeup/tsleep drivers: - if_run.c - - if_urtwn.c - if_zyd.c - ucycom.c - udsir.c Index: src/sys/dev/usb/if_urtwn.c diff -u src/sys/dev/usb/if_urtwn.c:1.34.4.15 src/sys/dev/usb/if_urtwn.c:1.34.4.16 --- src/sys/dev/usb/if_urtwn.c:1.34.4.15 Mon Dec 5 10:55:18 2016 +++ src/sys/dev/usb/if_urtwn.c Sat Jan 28 12:04:17 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: if_urtwn.c,v 1.34.4.15 2016/12/05 10:55:18 skrll Exp $ */ +/* $NetBSD: if_urtwn.c,v 1.34.4.16 2017/01/28 12:04:17 skrll Exp $ */ /* $OpenBSD: if_urtwn.c,v 1.42 2015/02/10 23:25:46 mpi Exp $ */ /*- @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_urtwn.c,v 1.34.4.15 2016/12/05 10:55:18 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_urtwn.c,v 1.34.4.16 2017/01/28 12:04:17 skrll Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -372,6 +372,7 @@ urtwn_attach(device_t parent, device_t s (void) usbd_do_request(sc->sc_udev, &req, 0); + cv_init(&sc->sc_task_cv, "urtwntsk"); mutex_init(&sc->sc_task_mtx, MUTEX_DEFAULT, IPL_NET); mutex_init(&sc->sc_tx_mtx, MUTEX_DEFAULT, IPL_NONE); mutex_init(&sc->sc_rx_mtx, MUTEX_DEFAULT, IPL_NONE); @@ -559,6 +560,7 @@ urtwn_detach(device_t self, int flags) callout_destroy(&sc->sc_scan_to); callout_destroy(&sc->sc_calib_to); + cv_destroy(&sc->sc_task_cv); mutex_destroy(&sc->sc_write_mtx); mutex_destroy(&sc->sc_fwcmd_mtx); mutex_destroy(&sc->sc_tx_mtx); @@ -823,8 +825,8 @@ urtwn_task(void *arg) ring->queued--; ring->next = (ring->next + 1) % URTWN_HOST_CMD_RING_COUNT; } + cv_broadcast(&sc->sc_task_cv); mutex_spin_exit(&sc->sc_task_mtx); - wakeup(&sc->cmdq); splx(s); } @@ -863,8 +865,10 @@ urtwn_wait_async(struct urtwn_softc *sc) DPRINTFN(DBG_FN, ("%s: %s\n", device_xname(sc->sc_dev), __func__)); /* Wait for all queued asynchronous commands to complete. */ + mutex_spin_enter(&sc->sc_task_mtx); while (sc->cmdq.queued > 0) - tsleep(&sc->cmdq, 0, "endtask", 0); + cv_wait(&sc->sc_task_cv, &sc->sc_task_mtx); + mutex_spin_exit(&sc->sc_task_mtx); } static int Index: src/sys/dev/usb/if_urtwnvar.h diff -u src/sys/dev/usb/if_urtwnvar.h:1.8.4.4 src/sys/dev/usb/if_urtwnvar.h:1.8.4.5 --- src/sys/dev/usb/if_urtwnvar.h:1.8.4.4 Mon Dec 5 10:55:18 2016 +++ src/sys/dev/usb/if_urtwnvar.h Sat Jan 28 12:04:17 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: if_urtwnvar.h,v 1.8.4.4 2016/12/05 10:55:18 skrll Exp $ */ +/* $NetBSD: if_urtwnvar.h,v 1.8.4.5 2017/01/28 12:04:17 skrll Exp $ */ /* $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ */ /*- @@ -128,6 +128,7 @@ struct urtwn_softc { callout_t sc_scan_to; callout_t sc_calib_to; + kcondvar_t sc_task_cv; kmutex_t sc_task_mtx; kmutex_t sc_fwcmd_mtx; kmutex_t sc_tx_mtx;