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;