baldrick at free.fr
Fri Apr 8 08:18:42 EDT 2005
> Then it looks like you need to usb_set_intfdata(intf, NULL) _before_
> releasing that intf, to avoid repeating the same thing in its
> disconnect(). Anyway recursing into the disconnect for the same
> interface still sounds like a bad thing, and IMHO should be avoided by
> not releasing it its own disconnect(). Or was I wrong im my analysis?
I already set it to NULL for just this reason - check the code. And you
don't recurse into disconnect for the interface disconnect was called
on: the usb_driver_release_interface code ignores the release in this
case. Let me summarize:
(1) I set the interface data to the usbatm_data for all interfaces.
That way, a disconnect on any one of them will cause unbind to be
(2) it would be fatal to get multiple calls to usbatm_usb_disconnect
with the same usbatm_data, so I set the interface data to NULL before
releasing each interface. This avoids both recursion and corruption.
More information about the Usbatm