linux-stable/drivers/usb/chipidea
Johan Hovold f61419119c USB: chipidea: fix interrupt deadlock
commit 9aaa81c336 upstream.

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-11-26 11:40:36 +01:00
..
bits.h
ci.h
ci_hdrc_imx.c usb: chipidea: ci_hdrc_imx: add missing put_device() call in usbmisc_get_init_data() 2021-01-12 20:09:10 +01:00
ci_hdrc_imx.h
ci_hdrc_msm.c
ci_hdrc_pci.c
ci_hdrc_tegra.c
ci_hdrc_usb2.c
ci_hdrc_zevio.c
core.c USB: chipidea: fix interrupt deadlock 2021-11-26 11:40:36 +01:00
debug.c
host.c usb: chipidea: host: Disable port power only if previously enabled 2020-01-14 20:05:39 +01:00
host.h
Kconfig
Makefile
otg.c usb: chipidea: Fix otg event handler 2019-11-20 18:00:19 +01:00
otg.h
otg_fsm.c
otg_fsm.h
udc.c
udc.h
ulpi.c
usbmisc_imx.c usb: chipidea: imx: enable OTG overcurrent in case USB subsystem is already started 2019-11-20 18:00:18 +01:00