WSL2-Linux-Kernel/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
..
Kconfig
Makefile
bits.h
ci.h
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
ci_hdrc_msm.c
ci_hdrc_pci.c
ci_hdrc_tegra.c
ci_hdrc_usb2.c
core.c USB: chipidea: fix interrupt deadlock 2021-10-22 11:14:12 +02:00
debug.c
host.c
host.h
otg.c
otg.h
otg_fsm.c
otg_fsm.h
trace.c
trace.h
udc.c usb: chipidea: udc: make controller hardware endpoint primed 2021-10-10 15:05:24 +02:00
udc.h
ulpi.c
usbmisc_imx.c