On Thu, Jul 15, 2021 at 05:37:44PM -0400, David Jeffery wrote: > When MSI is used by the ehci-hcd driver, it can cause lost interrupts which > results in EHCI only continuing to work due to a polling fallback. But the > reliance of polling drastically reduces performance of any I/O through EHCI. > > Interrupts are lost as the EHCI interrupt handler does not safely handle > edge-triggered interrupts. It fails to ensure all interrupt status bits are > cleared, which works with level-triggered interrupts but not the > edge-triggered interrupts typical from using MSI. > > To fix this problem, check if the driver may have raced with the hardware > setting additional interrupt status bits and clear status until it is in a > stable state. > > Signed-off-by: David Jeffery <djeffery@xxxxxxxxxx> > Tested-by: Laurence Oberman <loberman@xxxxxxxxxx> > Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > Fixes: 306c54d0edb6 usb: hcd: Try MSI interrupts on PCI devices Improper format. Add to your .gitconfig the following: [alias] one = show -s --pretty='format:%h (\"%s\")' c = show -s --pretty='format:https://git.kernel.org/torvalds/c/%h' -- With Best Regards, Andy Shevchenko