> > Now a routine that's not allowed to be called with a thread context > > can't be called in_interrupt() any longer, even given buggy device > > drivers that don't disconnect() correctly. > > Anyway, I don't understand how this patch changes anything. The call to > usb_put_dev() right below the place you patched usb_disconnect() would > do all of the cleanup that you just added to the function.
For correctly functioning device drivers, yes -- it just moves the cleanup from one function to another one. However, for the inevitable buggy device drivers, this guarantees the cleanup would never be done in_interrupt(). > Are you trying to separate the hardware specific portions of the device > from the "logical" portions? (I think this is your main point, right?) Err, not quite. Although bus->deallocate() is conventionally where such hardware-related cleanups would be done, the real issue is that it must not be called in_interrupt(). > If so, this patch _might_ work, but I'd like to get Johannes to look at > it in light of uhci.c. It's always been a NOP for "uhci.c", it couldn't be affected. - 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