cvs commit: src/sys/dev/usb usb_port.h

M. Warner Losh imp at bsdimp.com
Wed Sep 22 07:52:06 PDT 2004


In message: <20040921230445.B44288 at root.org>
            Nate Lawson <nate at root.org> writes:
: On Wed, 22 Sep 2004, Warner Losh wrote:
: > imp         2004-09-22 06:02:10 UTC
: >
: >   FreeBSD src repository
: >
: >   Modified files:
: >     sys/dev/usb          usb_port.h
: >   Log:
: >   Add a temporary workaround to the panic on boot with hub attached and
: >   panic on hub detach bugs that have been reported.  This work around
: >   detaches the device before deleting it.  This changes the detach order
: >   from in-order to pre-order.  This avoids uhub's deleting the children
: >   after its subdevs has been deleted.
: >
: >   Revision  Changes    Path
: >   1.68      +1 -0      src/sys/dev/usb/usb_port.h
: >
: >
: > Index: src/sys/dev/usb/usb_port.h
: > diff -u src/sys/dev/usb/usb_port.h:1.67 src/sys/dev/usb/usb_port.h:1.68
: > --- src/sys/dev/usb/usb_port.h:1.67	Sun Aug 15 23:39:18 2004
: > +++ src/sys/dev/usb/usb_port.h	Wed Sep 22 06:02:10 2004
: > @@ -422,6 +422,7 @@
: >  #define config_detach(dev, flag) \
: >  	do { \
: >  		free(device_get_ivars(dev), M_USB); \
: > +		device_detach(dev); \
: >  		device_delete_child(device_get_parent(dev), dev); \
: >  	} while (0);
: 
: Shouldn't you free the ivars after detaching the device?

I don't think this is the right place to do that.

: If the device
: releases resources in its attach routine, you may be walking the resource
: list stored in the ivars but that will already have been freed with the
: above code.

resources aren't stored in ivars.  usb devices do not use resources.

: It would also make sense to do this as the exact reverse of
: device creation.

I don't understand this.

Warner


More information about the cvs-src mailing list