> And if you go that naive route, just fix everything in the driver, then > you simply end up with something terribly inefficient because all those > corner case checks end up in the fast path and eating up code space. > One thing I forgot to mention here that should especially interest you: you add a lot of complexity to the *driver* that needs to verified and maintained (by the kernel community?!). Some of these workarounds I had to implement are really quite a convoluted mess and it's starting to take up a significant portion of the driver's code base as well ... just to support some fringe cases that are not even relevant to the hardware's main use cases (as "we" as the "hardware vendor" see it) at all. Note that I actually *have* implemented all these workarounds and my driver is fully passing all fuzzing tests etc. I'm just not happy with it. Regards, Pascal van Leeuwen Silicon IP Architect, Multi-Protocol Engines @ Inside Secure www.insidesecure.com