Panic when removing Airprime PC5220 card (usb hub).

M. Warner Losh imp at bsdimp.com
Thu May 12 09:39:08 PDT 2005


In message: <200505121755.32810.hselasky at c2i.net>
            Hans Petter Selasky <hselasky at c2i.net> writes:
: On Thursday 12 May 2005 15:48, Hans Petter Selasky wrote:
: > On Thursday 12 May 2005 01:58, M. Warner Losh wrote:
: > > In message: <200505120058.51834.hselasky at c2i.net>
: > >
: > >             Hans Petter Selasky <hselasky at c2i.net> writes:
: > > : On Wednesday 11 May 2005 22:33, Warner Losh wrote:
: 
: Maybe something like this is better, so that memory doesn't leak.
: 
: usb_disconnect_port(struct usbd_port *up, device_ptr_t parent,
:       u_int8_t free_subdev)
: {
: ...
: #ifdef __FreeBSD__
:    config_detach(dev->subdevs[i], DETACH_FORCE, free_subdev);
: #else
:    config_detach(dev->subdevs[i], DETACH_FORCE);
: #endif
: ...
: }
: 
: #define config_detach(dev, flag, free_subdev) \
:         do { \
:                 free(device_get_ivars(dev), M_USB); \
:                 if(free_subdev) \
:                 device_delete_child(device_get_parent(dev), dev); \
:         } while (0);

Apart from ugly ifdef, that might have some merit.  We don't
necessarily want to delete devices unless the hardware goes away.

Warner


More information about the freebsd-usb mailing list