linux-stable/drivers/usb/host
Mathias Nyman 712da5fc4a xhci: Don't create stream debugfs files with spinlock held.
Creating debugfs files while loding the spin_lock_irqsave(xhci->lock)
creates a lock dependecy that could possibly deadlock.

Lockdep warns:

=====================================================
WARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected
5.10.0-rc1pdx86+ #8 Not tainted
-----------------------------------------------------
systemd-udevd/386 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
ffffffffb1a94038 (pin_fs_lock){+.+.}-{2:2}, at: simple_pin_fs+0x22/0xa0

and this task is already holding:
ffff9e7b87fbc430 (&xhci->lock){-.-.}-{2:2}, at: xhci_alloc_streams+0x5f9/0x810
which would create a new lock dependency:
(&xhci->lock){-.-.}-{2:2} -> (pin_fs_lock){+.+.}-{2:2}

Create the files a bit later after lock is released.

Fixes: 673d746836 ("usb: xhci: add debugfs support for ep with stream")
CC: Li Jun <jun.li@nxp.com>
Reported-by: Hans de Goede <hdegoede@redhat.com>
Reported-by: Mike Galbraith <efault@gmx.de>
Tested-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20201028203124.375344-4-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-10-29 08:29:21 +01:00
..
bcma-hcd.c USB: bcma: use module_bcma_driver to simplify the code 2020-09-22 10:37:13 +02:00
ehci-atmel.c
ehci-brcm.c usb: ehci: Add new EHCI driver for Broadcom STB SoC's 2020-05-13 14:28:01 +02:00
ehci-dbg.c usb: host: Use fallthrough pseudo-keyword 2020-07-10 08:55:18 +02:00
ehci-exynos.c usb: host: ehci-exynos: Fix error check in exynos_ehci_probe() 2020-06-18 10:40:57 +02:00
ehci-fsl.c usb: host: Use fallthrough pseudo-keyword 2020-07-10 08:55:18 +02:00
ehci-fsl.h USB: host: Use the correct style for SPDX License Identifier 2020-04-16 14:32:46 +02:00
ehci-grlib.c
ehci-hcd.c ehci-hcd: Move include to keep CRC stable 2020-09-17 08:39:50 +02:00
ehci-hub.c ehci-hcd: Move include to keep CRC stable 2020-09-17 08:39:50 +02:00
ehci-mem.c
ehci-mv.c USB: EHCI: ehci-mv: fix less than zero comparison of an unsigned int 2020-05-19 15:11:43 +02:00
ehci-mxc.c USB: host: ehci-mxc: Add error handling in ehci_mxc_drv_probe() 2020-05-19 15:12:21 +02:00
ehci-npcm7xx.c usb/host: ehci-npcm7xx: Use pm_ptr() macro 2020-09-04 16:54:47 +02:00
ehci-omap.c usb: ehci-omap: Drop surplus include 2020-07-09 16:29:34 +02:00
ehci-orion.c
ehci-pci.c USB: Remove pci-dma-compat wrapper APIs. 2020-07-15 16:48:10 +02:00
ehci-platform.c usb: host: ehci-platform: Add workaround for brcm, xgs-iproc-ehci 2020-09-14 16:45:28 +02:00
ehci-pmcmsp.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
ehci-ppc-of.c
ehci-ps3.c
ehci-q.c usb: host: Use fallthrough pseudo-keyword 2020-07-10 08:55:18 +02:00
ehci-sched.c usb: host: ehci-sched: Remove ununsed function tt_start_uframe() 2020-09-14 16:50:24 +02:00
ehci-sh.c
ehci-spear.c usb/host: ehci-spear: Use pm_ptr() macro 2020-09-04 16:54:45 +02:00
ehci-st.c
ehci-sysfs.c
ehci-tegra.c usb: host: ehci-tegra: Fix error handling in tegra_ehci_probe() 2020-10-28 13:23:07 +01:00
ehci-timer.c
ehci-xilinx-of.c
ehci.h USB: host: Use the correct style for SPDX License Identifier 2020-04-16 14:32:46 +02:00
fhci-dbg.c
fhci-hcd.c usb: host: fhci-hcd: annotate PIPE_CONTROL switch case with fallthrough 2020-02-19 11:08:52 +01:00
fhci-hub.c
fhci-mem.c
fhci-q.c
fhci-sched.c USB/Thunderbolt patches for 5.9-rc1 2020-08-05 12:13:10 -07:00
fhci-tds.c usb: host: fhci-tds: Remove unused variables 'buf' and 'extra_data' 2020-07-09 17:19:59 +02:00
fhci.h USB: host: Use the correct style for SPDX License Identifier 2020-04-16 14:32:46 +02:00
fotg210-hcd.c usb: fotg210-hcd: convert to readl_poll_timeout_atomic() 2020-09-25 16:30:05 +02:00
fotg210.h USB: Replace zero-length array with flexible-array member 2020-02-23 19:24:51 +01:00
fsl-mph-dr-of.c usb: host: fsl-mph-dr-of: check return of dma_set_mask() 2020-10-28 13:19:31 +01:00
imx21-dbg.c
imx21-hcd.c usb: host: imx21-hcd: Demote function header which is clearly not kerneldoc 2020-07-09 17:19:57 +02:00
imx21-hcd.h USB: host: Use the correct style for SPDX License Identifier 2020-04-16 14:32:46 +02:00
isp116x-hcd.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
isp116x.h
isp1362-hcd.c usb: Use fallthrough pseudo-keyword 2020-07-10 08:55:17 +02:00
isp1362.h usb: host: isp1362: Mark the many unused ISP1362_REG entries as __maybe_unused 2020-07-03 10:18:40 +02:00
Kconfig usb: xhci: fix spelling mistake in Kconfig "firwmare" -> "firmware" 2020-06-18 16:03:46 +02:00
Makefile usb: renesas-xhci: Add the renesas xhci driver 2020-05-15 15:44:35 +02:00
max3421-hcd.c USB: Replace HTTP links with HTTPS ones 2020-07-21 13:41:57 +02:00
ohci-at91.c usb: host: ohci-at91: Demote kerneldoc headers down to basic comment blocks 2020-07-03 10:18:40 +02:00
ohci-da8xx.c usb: ohci-da8xx: ensure error return on variable error is set 2020-01-08 17:34:18 +01:00
ohci-dbg.c
ohci-exynos.c usb: host: ohci-exynos: Fix error handling in exynos_ohci_probe() 2020-08-27 09:25:58 +02:00
ohci-hcd.c usb: ohci: Make distrust_firmware param default to false 2020-09-14 16:48:26 +02:00
ohci-hub.c USB: OHCI: Use fallthrough pseudo-keyword 2020-07-10 08:55:18 +02:00
ohci-mem.c
ohci-nxp.c
ohci-omap.c usb: ohci-omap: Convert to use GPIO descriptors 2020-07-21 13:42:37 +02:00
ohci-pci.c USB: OHCI: remove obsolete FIXME comment 2020-06-19 08:58:44 +02:00
ohci-platform.c usb/ohci-platform: Fix a warning when hibernating 2020-05-18 18:15:39 +02:00
ohci-ppc-of.c
ohci-ps3.c
ohci-pxa27x.c
ohci-q.c USB: OHCI: Use fallthrough pseudo-keyword 2020-07-10 08:55:18 +02:00
ohci-s3c2410.c usb: host: ohci-s3c2410: Demote obvious misuse of kerneldoc to standard comment block 2020-07-09 16:46:57 +02:00
ohci-sa1111.c
ohci-sm501.c USB: ohci-sm501: Add missed iounmap() in remove 2020-06-18 10:42:53 +02:00
ohci-spear.c
ohci-st.c
ohci-tmio.c USB: OHCI: Use fallthrough pseudo-keyword 2020-07-10 08:55:18 +02:00
ohci.h usb: host: ohci: Mark cc_to_error as __maybe_unused 2020-07-03 10:18:40 +02:00
oxu210hp-hcd.c usb: oxu210hp-hcd: convert to readl_poll_timeout_atomic() 2020-09-25 16:30:05 +02:00
pci-quirks.c usb: pci-quirks: convert to readl_poll_timeout_atomic() 2020-09-25 16:30:05 +02:00
pci-quirks.h
r8a66597-hcd.c usb: host: r8a66597-hcd: Remove set, then over-written, but never used variable 'tmp' 2020-07-09 17:19:57 +02:00
r8a66597.h USB: host: Use the correct style for SPDX License Identifier 2020-04-16 14:32:46 +02:00
sl811-hcd.c usb: host: sl811-hcd: remove useless cast for driver.name 2020-02-19 11:10:27 +01:00
sl811.h
sl811_cs.c
ssb-hcd.c
u132-hcd.c usb: host: u132-hcd: Remove u132_static_list and list head u132_list 2020-04-16 14:32:46 +02:00
uhci-debug.c
uhci-grlib.c
uhci-hcd.c
uhci-hcd.h
uhci-hub.c
uhci-pci.c usb: hci: add hc_driver as argument for usb_hcd_pci_probe 2020-05-15 15:44:34 +02:00
uhci-platform.c
uhci-q.c
xhci-dbg.c
xhci-dbgcap.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
xhci-dbgcap.h xhci: dbc: remove tty specific port structure from struct xhci_dbc 2020-07-23 17:05:29 +02:00
xhci-dbgtty.c usb: xhci: convert tasklets to use new tasklet_setup() API 2020-08-18 13:00:01 +02:00
xhci-debugfs.c usb: xhci: add debugfs support for ep with stream 2020-09-20 16:18:00 +02:00
xhci-debugfs.h usb: xhci: add debugfs support for ep with stream 2020-09-20 16:18:00 +02:00
xhci-ext-caps.c
xhci-ext-caps.h USB: host: Use the correct style for SPDX License Identifier 2020-04-16 14:32:46 +02:00
xhci-histb.c usb: host: hisilicon: convert to devm_platform_get_and_ioremap_resource 2020-03-24 12:09:39 +01:00
xhci-hub.c USB fixes for 5.9-rc3 - take 2 2020-08-30 10:51:03 -07:00
xhci-mem.c xhci: Fix sizeof() mismatch 2020-10-29 08:29:12 +01:00
xhci-mtk-sch.c usb: xhci-mtk: fix the failure of bandwidth allocation 2020-07-21 14:05:49 +02:00
xhci-mtk.c usb: xhci-mtk: Fix typo 2020-08-18 12:12:54 +02:00
xhci-mtk.h USB: host: Use the correct style for SPDX License Identifier 2020-04-16 14:32:46 +02:00
xhci-mvebu.c
xhci-mvebu.h USB: host: Use the correct style for SPDX License Identifier 2020-04-16 14:32:46 +02:00
xhci-pci-renesas.c usb: renesas-xhci: remove version check 2020-08-18 11:55:23 +02:00
xhci-pci.c usb: xhci: Workaround for S3 issue on AMD SNPS 3.0 xHC 2020-10-29 08:29:16 +01:00
xhci-pci.h usb: xhci: make symbols static 2020-05-19 14:11:55 +02:00
xhci-plat.c usb: host: xhci-plat: improve the comments for xhci_plat_suspend 2020-09-20 16:18:00 +02:00
xhci-plat.h usb: host: xhci-plat: add .suspend_quirk for struct xhci_plat_priv 2020-09-20 16:18:00 +02:00
xhci-rcar.c usb: xhci-rcar: convert to readl_poll_timeout_atomic() 2020-09-25 16:30:05 +02:00
xhci-rcar.h USB: host: Use the correct style for SPDX License Identifier 2020-04-16 14:32:46 +02:00
xhci-ring.c xhci: Tune interrupt blocking for isochronous transfers 2020-09-20 16:18:00 +02:00
xhci-tegra.c Linux 5.9-rc3 2020-08-31 07:11:45 +02:00
xhci-trace.c
xhci-trace.h USB: host: Use the correct style for SPDX License Identifier 2020-04-16 14:32:46 +02:00
xhci.c xhci: Don't create stream debugfs files with spinlock held. 2020-10-29 08:29:21 +01:00
xhci.h usb: xhci: Workaround for S3 issue on AMD SNPS 3.0 xHC 2020-10-29 08:29:16 +01:00