linux/drivers/usb
Mathias Nyman 55f6153d8c xhci: remove extra loop in interrupt context
When finishing a TD we walk the endpoint dequeue trb pointer
until it matches the last TRB of the TD.

TDs can contain over 100 TRBs, meaning we call a function 100 times,
do a few comparisons and increase a couple values for each of these calls,
all in interrupt context.

This can all be avoided by adding a pointer to the last TRB segment, and
a number of TRBs in the TD. So instead of walking through each TRB just
set the new dequeue segment, pointer, and number of free TRBs directly.

Getting rid of the while loop also reduces the risk of getting stuck in a
infinite loop in the interrupt handler. Loop relied on valid matching
dequeue and last_trb values to break.

Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20210129130044.206855-12-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-01-29 14:16:50 +01:00
..
atm drivers: usb: atm: use pr_err() and pr_warn() instead of raw printk() 2020-12-09 15:22:51 +01:00
c67x00 usb/c67x00: Replace tasklet with work 2021-01-26 18:36:37 +01:00
cdns3 usb: cdns3: imx: improve driver .remove API 2020-12-29 13:39:53 +08:00
chipidea usb: chipidea: tegra: Specify TX FIFO threshold in UDC SoC info 2021-01-13 11:26:34 +01:00
class Merge 5.11-rc3 into usb-next 2021-01-11 08:11:26 +01:00
common usb: common: ulpi: Constify static attribute_group struct 2020-11-26 13:40:43 +01:00
core kcov, usb: hide in_serving_softirq checks in __usb_hcd_giveback_urb 2021-01-07 14:17:29 +01:00
dwc2 usb: dwc2: Make "trimming xfer length" a debug message 2021-01-26 18:42:15 +01:00
dwc3 usb: dwc3: qcom: add URS Host support for sdm845 ACPI boot 2021-01-15 16:51:31 +01:00
early usb: early: ehci-dbgp: convert to readl_poll_timeout_atomic() 2020-09-25 16:29:09 +02:00
gadget usb: raw-gadget: update documentation and Kconfig 2021-01-26 18:38:45 +01:00
host xhci: remove extra loop in interrupt context 2021-01-29 14:16:50 +01:00
image USB: microtek: use set_host_byte() 2020-09-16 12:42:10 +02:00
isp1760 usb: isp1760-hcd: convert to readl_poll_timeout_atomic() 2020-09-25 16:30:05 +02:00
misc USB: yurex: fix control-URB timeout handling 2020-12-28 15:47:06 +01:00
mon
mtu3 usb: mtu3: fix memory corruption in mtu3_debugfs_regset() 2020-12-07 15:26:18 +01:00
musb usb: Fix fall-through warnings for Clang 2020-11-23 17:46:01 +01:00
phy usb: phy: phy-mxs-usb: Use of_device_get_match_data() 2021-01-18 18:35:46 +01:00
renesas_usbhs
roles device connection: Remove struct device_connection 2020-09-07 11:14:09 +02:00
serial USB: serial: iuu_phoenix: fix DMA from stack 2021-01-04 16:30:09 +01:00
storage usb: uas: Add PNY USB Portable SSD to unusual_uas 2021-01-05 14:05:10 +01:00
typec usb: typec: tcpci_maxim: add terminating newlines to logging 2021-01-25 11:37:07 +01:00
usbip Merge 5.11-rc3 into usb-next 2021-01-11 08:11:26 +01:00
Kconfig
Makefile usb: host: imx21-hcd: Remove the driver 2020-11-13 15:22:46 +01:00
usb-skeleton.c