summaryrefslogtreecommitdiffstats
path: root/drivers/usb/dwc3/dwc3-rtk.c
diff options
context:
space:
mode:
authorOliver Neukum <oneukum@suse.com>2023-11-15 15:45:07 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-11-21 15:30:27 +0100
commit0583bc776ca5b5a3f5752869fc31cf7322df2b35 (patch)
tree44151abe862f1439c83c7427f9a75a5eb65a495a /drivers/usb/dwc3/dwc3-rtk.c
parentusb: misc: ljca: Drop _ADR support to get ljca children devices (diff)
downloadlinux-0583bc776ca5b5a3f5752869fc31cf7322df2b35.tar.xz
linux-0583bc776ca5b5a3f5752869fc31cf7322df2b35.zip
USB: dwc2: write HCINT with INTMASK applied
dwc2_hc_n_intr() writes back INTMASK as read but evaluates it with intmask applied. In stress testing this causes spurious interrupts like this: [Mon Aug 14 10:51:07 2023] dwc2 3f980000.usb: dwc2_hc_chhltd_intr_dma: Channel 7 - ChHltd set, but reason is unknown [Mon Aug 14 10:51:07 2023] dwc2 3f980000.usb: hcint 0x00000002, intsts 0x04600001 [Mon Aug 14 10:51:08 2023] dwc2 3f980000.usb: dwc2_hc_chhltd_intr_dma: Channel 0 - ChHltd set, but reason is unknown [Mon Aug 14 10:51:08 2023] dwc2 3f980000.usb: hcint 0x00000002, intsts 0x04600001 [Mon Aug 14 10:51:08 2023] dwc2 3f980000.usb: dwc2_hc_chhltd_intr_dma: Channel 4 - ChHltd set, but reason is unknown [Mon Aug 14 10:51:08 2023] dwc2 3f980000.usb: hcint 0x00000002, intsts 0x04600001 [Mon Aug 14 10:51:08 2023] dwc2 3f980000.usb: dwc2_update_urb_state_abn(): trimming xfer length Applying INTMASK prevents this. The issue exists in all versions of the driver. Signed-off-by: Oliver Neukum <oneukum@suse.com> Tested-by: Ivan Ivanov <ivan.ivanov@suse.com> Tested-by: Andrea della Porta <andrea.porta@suse.com> Link: https://lore.kernel.org/r/20231115144514.15248-1-oneukum@suse.com Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions