usb/83504: [usb] SpeedTouch USB stop working on recent current
(and RELENG_6) (regression)
Ian Dowse
iedowse at iedowse.com
Sat Feb 25 09:40:08 PST 2006
The following reply was made to PR usb/83504; it has been noted by GNATS.
From: Ian Dowse <iedowse at iedowse.com>
To: Diego <siarod at tin.it>
Cc: bug-followup at FreeBSD.org
Subject: Re: usb/83504: [usb] SpeedTouch USB stop working on recent current (and RELENG_6) (regression)
Date: Sat, 25 Feb 2006 17:33:59 +0000
Hi, could you see if the following patch helps? Since the code is
already prepared to release devmtx and sleep, and since there is a
timeout specified, it seems there should be no harm in dropping
the devmtx lock around the d_purge call too.
Ian
Index: kern_conf.c
===================================================================
RCS file: /dump/FreeBSD-CVS/src/sys/kern/kern_conf.c,v
retrieving revision 1.186.2.5
diff -u -r1.186.2.5 kern_conf.c
--- kern_conf.c 6 Nov 2005 15:58:06 -0000 1.186.2.5
+++ kern_conf.c 25 Feb 2006 17:26:12 -0000
@@ -662,7 +662,9 @@
while (csw != NULL && csw->d_purge != NULL && dev->si_threadcount) {
printf("Purging %lu threads from %s\n",
dev->si_threadcount, devtoname(dev));
+ dev_unlock();
csw->d_purge(dev);
+ dev_lock();
msleep(csw, &devmtx, PRIBIO, "devprg", hz/10);
}
if (csw != NULL && csw->d_purge != NULL)
More information about the freebsd-usb
mailing list