aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/usb/usb_process.c
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2016-09-14 12:07:34 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2016-09-14 12:07:34 +0000
commit0eb8d462321b9b88bc4dd2fe3e1aa5fc8f460bb6 (patch)
tree1753f8f8c24655c2e00fbb2c86405cefcb1d0086 /sys/dev/usb/usb_process.c
parent275253770b5fa20590ddb84babe7ba48b2844712 (diff)
Notes
Diffstat (limited to 'sys/dev/usb/usb_process.c')
-rw-r--r--sys/dev/usb/usb_process.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/sys/dev/usb/usb_process.c b/sys/dev/usb/usb_process.c
index 683c700d2472..ec14cd867045 100644
--- a/sys/dev/usb/usb_process.c
+++ b/sys/dev/usb/usb_process.c
@@ -115,7 +115,7 @@ usb_process(void *arg)
sched_prio(td, up->up_prio);
thread_unlock(td);
- mtx_lock(up->up_mtx);
+ USB_MTX_LOCK(up->up_mtx);
up->up_curtd = td;
@@ -195,7 +195,7 @@ usb_process(void *arg)
up->up_ptr = NULL;
cv_signal(&up->up_cv);
- mtx_unlock(up->up_mtx);
+ USB_MTX_UNLOCK(up->up_mtx);
#if (__FreeBSD_version >= 800000)
/* Clear the proc pointer if this is the last thread. */
if (--usb_pcount == 0)
@@ -291,11 +291,12 @@ usb_proc_msignal(struct usb_process *up, void *_pm0, void *_pm1)
usb_size_t d;
uint8_t t;
- /* check if gone, return dummy value */
- if (up->up_gone)
+ /* check if gone or in polling mode, return dummy value */
+ if (up->up_gone != 0 ||
+ USB_IN_POLLING_MODE_FUNC() != 0)
return (_pm0);
- mtx_assert(up->up_mtx, MA_OWNED);
+ USB_MTX_ASSERT(up->up_mtx, MA_OWNED);
t = 0;
@@ -376,7 +377,7 @@ usb_proc_is_gone(struct usb_process *up)
* structure is initialised.
*/
if (up->up_mtx != NULL)
- mtx_assert(up->up_mtx, MA_OWNED);
+ USB_MTX_ASSERT(up->up_mtx, MA_OWNED);
return (0);
}
@@ -397,7 +398,7 @@ usb_proc_mwait(struct usb_process *up, void *_pm0, void *_pm1)
if (up->up_gone)
return;
- mtx_assert(up->up_mtx, MA_OWNED);
+ USB_MTX_ASSERT(up->up_mtx, MA_OWNED);
if (up->up_curtd == curthread) {
/* Just remove the messages from the queue. */
@@ -437,9 +438,9 @@ usb_proc_drain(struct usb_process *up)
return;
/* handle special case with Giant */
if (up->up_mtx != &Giant)
- mtx_assert(up->up_mtx, MA_NOTOWNED);
+ USB_MTX_ASSERT(up->up_mtx, MA_NOTOWNED);
- mtx_lock(up->up_mtx);
+ USB_MTX_LOCK(up->up_mtx);
/* Set the gone flag */
@@ -472,7 +473,7 @@ usb_proc_drain(struct usb_process *up)
DPRINTF("WARNING: Someone is waiting "
"for USB process drain!\n");
}
- mtx_unlock(up->up_mtx);
+ USB_MTX_UNLOCK(up->up_mtx);
}
/*------------------------------------------------------------------------*
@@ -493,7 +494,7 @@ usb_proc_rewakeup(struct usb_process *up)
if (up->up_gone)
return;
- mtx_assert(up->up_mtx, MA_OWNED);
+ USB_MTX_ASSERT(up->up_mtx, MA_OWNED);
if (up->up_msleep == 0) {
/* re-wakeup */