From owner-freebsd-hackers@FreeBSD.ORG Wed Mar 31 08:32:18 2004 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D20A816A4CF for ; Wed, 31 Mar 2004 08:32:18 -0800 (PST) Received: from harmony.village.org (rover.bsdimp.com [204.144.255.66]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4796743D39 for ; Wed, 31 Mar 2004 08:32:18 -0800 (PST) (envelope-from imp@bsdimp.com) Received: from localhost (warner@rover2.village.org [10.0.0.1]) by harmony.village.org (8.12.10/8.12.9) with ESMTP id i2VGVvkj026594; Wed, 31 Mar 2004 09:32:03 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Wed, 31 Mar 2004 09:32:11 -0700 (MST) Message-Id: <20040331.093211.102577197.imp@bsdimp.com> To: boris@brooknet.com.au From: "M. Warner Losh" In-Reply-To: <39883.134.148.20.33.1080706267.squirrel@134.148.20.33> References: <20040330.014632.132641792.imp@bsdimp.com> <20040330090601.GE32646@cicely12.cicely.de> <39883.134.148.20.33.1080706267.squirrel@134.148.20.33> 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: ticso@cicely12.cicely.de cc: samuel.lawrance@studentmail.newcastle.edu.au cc: ticso@cicely.de cc: freebsd-hackers@freebsd.org Subject: Re: usbd config file parse behaviour X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2004 16:32:19 -0000 : I agree that it's bad to yank a device from under ugen automatically and : reattach it to a better match. I think it is good. Really. However, ugen should mark the device busy when it is opened, and mark it as unbusy as closed and the reprobe shouldn't happen if the device is busy. Otherwise, there's no harm. ugen2 goes away, who cares. ugen0, ugen1, and ugen3 would still be there. However, if a device is in use, the probe routines of other divices may interfere. Part of the problem is we can't tell a driver 'detach if you aren't busy' vs 'detach now, your hardware is gone or about to be gone'. Maybe we should fix that at the same time. There's also a desire from the hot-plug bus people to have a 'quiesce' the device, which is similar to the current suspend method, but with different semantics (quiesce means stop using the hardware, while suspend says put the hardware to sleep). : How about adding a new ioctl on /dev/usb, eg USB_REPROBE to reset a device : if a better match exists? I don't want this to be USB specific. usb has enough kludgy hacks. That's why we're in this mess. If we do something like this, then we should do it for all devices on all busses. : Could tack an option on to usbdevs to call it on requested devices. Absolutely not. We want uniform behavior. It would be a nightmare to manage a huge table in the kernel with exceptions. Warner