Fair enough. However, it still seems particularly idiotic to
- penalize everybody
- mix up two totally unrelated areas (cpufreq and USB) for a bug that is
extremely rare and could be handled differently.
For example, if it really ends up being practically impossible to recover
from split transaction errors, I would still suggest reverting that horrid
commit, and then just black-listing the known-broken EHCI controllers and
simply not *do* any split transactions on them. That way there's no
complexity.
As far as I know, split transactions aren't required anyway, they are just
a performance optimization.
Basically, we not only know that the commit has caused problems, it's
fundamentally ugly, fragile, and not very maintainable, and the whole
reason for doing it is pretty dubious.
Why not just admit that certain hardware is broken (and the vendor isn't
worth even bothering to be polite with, since they try to screw us every
chance they get) and cannot reliably do split transactions? Problem
solved, no real downside, and nobody will even *notice*.
Linus
-