Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Jul 2004 16:36:58 -0600 (MDT)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        pjd@freebsd.org
Cc:        scottl@freebsd.org
Subject:   Re: Unloading USB driver while device is attached.
Message-ID:  <20040719.163658.97851603.imp@bsdimp.com>
In-Reply-To: <20040719175241.GJ57678@darkness.comp.waw.pl>
References:  <20040719173819.GI57678@darkness.comp.waw.pl> <40FC0832.3040805@freebsd.org> <20040719175241.GJ57678@darkness.comp.waw.pl>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20040719175241.GJ57678@darkness.comp.waw.pl>
            Pawel Jakub Dawidek <pjd@freebsd.org> writes:
: On Mon, Jul 19, 2004 at 11:43:14AM -0600, Scott Long wrote:
: +> >Yeah, but even on 'kldunload -f' it should be possible to clean up
: +> >and avoid panic on next load.
: +> >
: +> 
: +> What usually happens in that a timeout happens and the driver handler no
: +> longer exists (i.e. forgot to call untimeout), or an interrupt happens
: +> and the driver forgot to deregister the interrupt.  There are also a lot
: +> of rase possibilities in here even if the driver attempts to do the
: +> right thing.  There really isn't a 'one size fits all' way to deal with
: +> this kind of thing.  The driver author needs to build quiesce and
: +> shutdown semantics into the driver design.
: 
: If your device is inserted and you load a driver everything is ok,
: because no driver is attached to this device.
: So, as I see it, device should be totally detached before unload and
: I susspect that something is missing in USB layer, not in all drivers.
: That's why when I load a driver again, USB thinks it is somehow connected
: to existing device, but it isn't.

Actually, usb won't reattach on kldload.  That's definitely missing
from the usb layer.  This has been noted many times in the past.
However, its missing shouldn't cause the panic.  That's likely a
different bug.

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040719.163658.97851603.imp>