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