Old USB stuff

Of purely historical interest — I had an old PNG sitting around — the Linux 2.4 host-side USB stack had an URB lifecycle that looked, at best, like this: obsolete LK 2.4 URB lifecycle

When I say "at best", I mean that not all host controller drivers worked that way. What worked with one could oops another. The "resubmit" paths were especially troublesome, since I don't think there was a way to use them which would work reliably on all host controller drivers, in the face of things like device unplug, driver rmmod, SMP races, and so on. That's why the Linux 2.6 host-side USB stack got rid of that "resubmit" crap.

There have been other changes too, notably having usbcore participate in that lifecycle to help simplify host controller drivers. But changing to a simpler lifecycle was probably one of the first really significant, and backward-incompatible, changes in the 2.6 development cycle. And it was one of several related, and truly significant, steps in terms of system robustness.

And fixing that would not have been possible if Linux needed to stay backwards-compatible with every stupid design decision ever made...