Enlarge the XHCI Event Ring to cope with high load situations by allowing more than one segment. This second iteration seeks to address all of Mathias' review feedback on v1: * Patch [01/10]: Use ERST_DESI_MASK instead of ERST_PTR_MASK when constructing the new ERDP value to avoid carrying over a set EHB bit. * Patch [04/10]: Only use up to 2 Event Ring segments by default (instead of 8). * Patch [05/10]: New patch to adjust segment numbers after ring expansion. * Patch [08/10]: New patch to clean up ERST_PTR_MASK inversion. Several other issues caught my eye and I'm including fixes and cleanups for those as well. Link to v1: https://lore.kernel.org/all/cover.1692085657.git.lukas@xxxxxxxxx/ Jonathan Bell (1): xhci: Use more than one Event Ring segment Lukas Wunner (9): xhci: Clear EHB bit only at end of interrupt handler xhci: Preserve RsvdP bits in ERSTBA register correctly xhci: Set DESI bits in ERDP register correctly xhci: Adjust segment numbers after ring expansion xhci: Update last segment pointer after Event Ring expansion xhci: Expose segment numbers in debugfs xhci: Clean up ERST_PTR_MASK inversion xhci: Clean up stale comment on ERST_SIZE macro xhci: Clean up xhci_{alloc,free}_erst() declarations drivers/usb/host/xhci-debugfs.c | 2 +- drivers/usb/host/xhci-mem.c | 68 ++++++++++++++++++--------------- drivers/usb/host/xhci-ring.c | 17 +++++---- drivers/usb/host/xhci.c | 2 +- drivers/usb/host/xhci.h | 18 +++------ 5 files changed, 53 insertions(+), 54 deletions(-) -- 2.39.2