diff options
author | pjd <pjd@FreeBSD.org> | 2008-05-20 12:34:30 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2008-05-20 12:34:30 +0000 |
commit | 2f427637e0af90ccec0c813c87cd3ae5404cedc3 (patch) | |
tree | 6fe9ddd94f9ba66734408b38ed669310eee31669 /sys/dev | |
parent | 3a3e7da2d391c066ec7534c92496ccfa82ba849e (diff) | |
download | FreeBSD-src-2f427637e0af90ccec0c813c87cd3ae5404cedc3.zip FreeBSD-src-2f427637e0af90ccec0c813c87cd3ae5404cedc3.tar.gz |
Drop Giant before calling kproc_exit(), so we don't trigger assertion in
kproc_exit().
Discussed with: imp
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/usb/usb.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/usb/usb.c b/sys/dev/usb/usb.c index 6f92c77..0cbf6bd 100644 --- a/sys/dev/usb/usb.c +++ b/sys/dev/usb/usb.c @@ -453,6 +453,8 @@ usb_event_thread(void *arg) wakeup(sc); DPRINTF(("usb_event_thread: exit\n")); + while (mtx_owned(&Giant)) + mtx_unlock(&Giant); kproc_exit(0); } @@ -490,6 +492,8 @@ usb_task_thread(void *arg) wakeup(&taskq->taskcreated); DPRINTF(("usb_event_thread: exit\n")); + while (mtx_owned(&Giant)) + mtx_unlock(&Giant); kproc_exit(0); } |