From owner-cvs-src@FreeBSD.ORG Wed Sep 8 17:22:46 2004 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EC1BA16A4CE; Wed, 8 Sep 2004 17:22:46 +0000 (GMT) Received: from harmony.village.org (rover.village.org [168.103.84.182]) by mx1.FreeBSD.org (Postfix) with ESMTP id 617FB43D48; Wed, 8 Sep 2004 17:22:46 +0000 (GMT) (envelope-from imp@bsdimp.com) Received: from localhost (warner@rover2.village.org [10.0.0.1]) by harmony.village.org (8.13.1/8.13.1) with ESMTP id i88HKU9E049791; Wed, 8 Sep 2004 11:20:31 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Wed, 08 Sep 2004 11:21:00 -0600 (MDT) Message-Id: <20040908.112100.102577181.imp@bsdimp.com> To: green@freebsd.org From: "M. Warner Losh" In-Reply-To: <20040908152956.GD928@green.homeunix.org> References: <20040908130741.GC928@green.homeunix.org> <20040908.083215.102654981.imp@bsdimp.com> <20040908152956.GD928@green.homeunix.org> X-Mailer: Mew version 3.3 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit cc: cvs-src@freebsd.org cc: src-committers@freebsd.org cc: cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/dev/usb ugen.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Sep 2004 17:22:47 -0000 In message: <20040908152956.GD928@green.homeunix.org> Brian Fundakowski Feldman writes: : On Wed, Sep 08, 2004 at 08:32:15AM -0600, M. Warner Losh wrote: : > In message: <20040908130741.GC928@green.homeunix.org> : > Brian Fundakowski Feldman writes: : > : On Wed, Sep 08, 2004 at 01:20:31AM -0600, M. Warner Losh wrote: : > : > In message: <200409080713.i887Dd54058789@repoman.freebsd.org> : > : > Warner Losh writes: : > : > : imp 2004-09-08 07:13:39 UTC : > : > : : > : > : FreeBSD src repository : > : > : : > : > : Modified files: : > : > : sys/dev/usb ugen.c : > : > : Log: : > : > : Back out 1.88. : > : > 1.87 I mean. : > : > : The reference counts are there to block detach until the sleepers in : > : > : read/write/ioctl have gotten out, not to prevent the open device from : > : > : going away. Restore the old behavior so that we have a chance to wake : > : > : up sleepers when the usb device goes away, so they can properly return : > : > : EIO back to the caller when this happens. : > : > : : > : > : Otherwise, we have a guarnateed panic waiting to happen when a device : > : > : detaches with an active read channel. : > : > : : > : > : This should be merged to 5 asap. : > : : > : Now I'll get guaranteed panics using both my Palm and any CardBus hardware. : > : > Can you send me a traceback for that problem then? The 'reference : > count' here is very much supposed to be a 'how many sleepers do you : > have' sort of thing and is present in nearly all of the usb drivers. : : No, I'd prefer not to have to crash my machine more. It already does that : (or hangs, or whatever) in -CURRENT often enough. : : (Holding breath for open sourced Solaris.) Brian, Since I backed out your fix, that puts me on the hook to fix the problem that you made the change for. If you provide me with some information about how to reproduce it, I'll be happy to look into the problem. The above is only enough to let me guess at what might be going on. I'm sorry I committed without talking to you first, but the above change cost myself and my boss a couple of days of debugging time on one of our products that keeps ugen open to monitor it until it goes away. I was understandably grumpy at having my time wasted like this when I discovered why things broke :-(. Warner