> I took a look at it (ref-fixup.patch) and I'm not exactly sure why the > usb_put_bus call got moved as well. David, could you explain why that's > necessary?
Otherwise devices in this "zombie state" could be used to initiate new requests, which would clearly be an error since the device is actually gone ... and all of the relevant state (except memory for config descriptors and usb_device) has been cleaned up. Remember that there are basically two outcomes at the end of usb_disconnect(): - drivers and HCD are all done with the device, so the last call in disconnect() will free all the memory. - OR something has, for some reason, kept a handle to that memory, so it'll be freed later. Breaking that dev->bus linkage when the disconnect is done ensures that clean failures will be reported ... and that no new HCD state for the device could be created. All the methods that go through usb_operations check for null dev->bus. - Dave _______________________________________________________________ Have big pipes? SourceForge.net is looking for download mirrors. We supply the hardware. You get the recognition. Email Us: [EMAIL PROTECTED] _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel