linux-stable/drivers/usb/chipidea
Johan Hovold 9aaa81c336 USB: chipidea: fix interrupt deadlock
Chipidea core was calling the interrupt handler from non-IRQ context
with interrupts enabled, something which can lead to a deadlock if
there's an actual interrupt trying to take a lock that's already held
(e.g. the controller lock in udc_irq()).

Add a wrapper that can be used to fake interrupts instead of calling the
handler directly.

Fixes: 3ecb3e09b0 ("usb: chipidea: Use extcon framework for VBUS and ID detect")
Fixes: 876d4e1e82 ("usb: chipidea: core: add wakeup support for extcon")
Cc: Peter Chen <peter.chen@kernel.org>
Cc: stable@vger.kernel.org      # 4.4
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://lore.kernel.org/r/20211021083447.20078-1-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-10-22 11:14:12 +02:00
..
bits.h USB: chipidea: Use the correct style for SPDX License Identifier 2020-03-16 11:13:47 +08:00
ci.h USB: chipidea: remove dentry storage for debugfs file 2021-05-27 09:34:34 +02:00
ci_hdrc_imx.c usb: chipidea: ci_hdrc_imx: Also search for 'phys' phandle 2021-10-05 13:47:26 +02:00
ci_hdrc_imx.h usb: chipidea: imx: add two samsung picophy parameters tuning implementation 2020-08-23 11:40:08 +08:00
ci_hdrc_msm.c usb: chipidea: msm: Ensure proper controller reset using role switch API 2020-05-07 08:46:35 +02:00
ci_hdrc_pci.c usb: chipidea: ci_hdrc_pci: Fix improper use of kerneldoc format 2020-07-09 17:19:56 +02:00
ci_hdrc_tegra.c usb: chipidea: tegra: Silence deferred probe error 2021-03-23 12:50:32 +01:00
ci_hdrc_usb2.c usb: chipidea: usb2: remove unneeded semicolon 2020-04-29 09:47:19 +08:00
core.c USB: chipidea: fix interrupt deadlock 2021-10-22 11:14:12 +02:00
debug.c USB: chipidea: remove dentry storage for debugfs file 2021-05-27 09:34:34 +02:00
host.c usb: chipidea: host: fix port index underflow and UBSAN complains 2021-08-21 13:15:25 +08:00
host.h usb: chipidea: add inline for ci_hdrc_host_driver_init if host is not defined 2020-01-22 07:54:27 +01:00
Kconfig usb: chipidea: tegra: Support host mode 2021-01-13 11:26:34 +01:00
Makefile usb: chipidea: add tracepoint support for udc 2020-12-10 08:45:26 +08:00
otg.c usb: chipidea: otg: Fix formatting and missing documentation issues 2021-05-27 09:43:44 +02:00
otg.h USB: chipidea: Use the correct style for SPDX License Identifier 2020-03-16 11:13:47 +08:00
otg_fsm.c USB: move many drivers to use DEVICE_ATTR_WO 2018-01-24 08:49:52 +01:00
otg_fsm.h USB: chipidea: Use the correct style for SPDX License Identifier 2020-03-16 11:13:47 +08:00
trace.c usb: chipidea: add tracepoint support for udc 2020-12-10 08:45:26 +08:00
trace.h usb: chipidea: trace: fix the endian issue 2020-12-10 08:45:26 +08:00
udc.c usb: chipidea: udc: make controller hardware endpoint primed 2021-10-10 15:05:24 +02:00
udc.h usb: chipidea: udc: add software sg list support 2020-05-06 09:42:35 +08:00
ulpi.c usb: chipidea: Always build ULPI code 2018-07-05 14:22:47 +08:00
usbmisc_imx.c usb: chipidea: imx: Fix Battery Charger 1.2 CDP detection 2021-06-16 09:04:22 +08:00