On Mon, Apr 08, 2002 at 12:33:40PM -0400, John Baldwin wrote: > show witness isn't useful to most people so I would avoid it unless someone > explicitly asks for it. The problem here is likely due to the > usb_task_thread() not locking Giant when it starts up.
We probably want this:
Index: usb.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/usb/usb.c,v
retrieving revision 1.75
diff -u -5 -r1.75 usb.c
--- usb.c 7 Apr 2002 14:21:32 -0000 1.75
+++ usb.c 8 Apr 2002 17:58:38 -0000
@@ -423,10 +423,14 @@
usb_task_thread(void *arg)
{
struct usb_task *task;
int s;
+#ifdef __FreeBSD__
+ mtx_lock(&Giant);
+#endif
+
DPRINTF(("usb_task_thread: start\n"));
s = splusb();
for (;;) {
task = TAILQ_FIRST(&usb_all_tasks);
Joe
msg37102/pgp00000.pgp
Description: PGP signature
