linux/drivers/usb/host
Vitalii Mordan 40c9748267 usb: ehci-spear: fix call balance of sehci clk handling routines
If the clock sehci->clk was not enabled in spear_ehci_hcd_drv_probe,
it should not be disabled in any path.

Conversely, if it was enabled in spear_ehci_hcd_drv_probe, it must be disabled
in all error paths to ensure proper cleanup.

Found by Linux Verification Center (linuxtesting.org) with Klever.

Fixes: 7675d6ba43 ("USB: EHCI: make ehci-spear a separate driver")
Cc: stable@vger.kernel.org
Signed-off-by: Vitalii Mordan <mordan@ispras.ru>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Link: https://lore.kernel.org/r/20241114230310.432213-1-mordan@ispras.ru
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2024-11-16 09:04:06 +01:00
..
bcma-hcd.c USB: bcma: Remove unused of_gpio.h 2024-11-04 01:27:52 +01:00
ehci-atmel.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ehci-brcm.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ehci-dbg.c USB: Use EHCI control transfer pid macros instead of constant values. 2024-03-26 10:43:35 +01:00
ehci-exynos.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ehci-fsl.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +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 usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ehci-hcd.c drivers/usb/host: refactor min/max with min_t/max_t 2024-11-13 15:09:50 +01:00
ehci-hub.c usb: ehci: add workaround for chipidea PORTSC.PEC bug 2023-08-09 14:16:06 +02:00
ehci-mem.c usb: host: ehci: Make use of dma_pool_zalloc() instead of dma_pool_alloc/memset() 2021-10-21 12:47:56 +02:00
ehci-mv.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ehci-npcm7xx.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ehci-omap.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ehci-orion.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ehci-pci.c USB: Extend pci resume function to handle PM events 2023-05-13 17:33:18 +09:00
ehci-platform.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ehci-ppc-of.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ehci-ps3.c powerpc/ps3: make system bus's remove and shutdown callbacks return void 2020-12-04 01:01:22 +11:00
ehci-q.c USB: Use EHCI control transfer pid macros instead of constant values. 2024-03-26 10:43:35 +01:00
ehci-sched.c usb: host: ehci-sched: try to turn on io watchdog as long as periodic_count > 0 2023-08-12 10:03:22 +02:00
ehci-sh.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ehci-spear.c usb: ehci-spear: fix call balance of sehci clk handling routines 2024-11-16 09:04:06 +01:00
ehci-st.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ehci-sysfs.c USB: move many drivers to use DEVICE_ATTR_RW 2018-01-24 08:49:51 +01:00
ehci-timer.c usb: host: Replace empty define with do while 2018-09-28 15:03:37 +02:00
ehci-xilinx-of.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ehci.h USB: Use EHCI control transfer pid macros instead of constant values. 2024-03-26 10:43:35 +01:00
fhci-dbg.c USB: fhci-hcd: no need to check return value of debugfs_create functions 2018-05-31 12:54:22 +02:00
fhci-hcd.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
fhci-hub.c USB: FHCI: Switch to GPIO descriptors 2022-09-01 16:08:29 +02:00
fhci-mem.c USB: host: fhci: Remove redundant license text 2017-11-07 15:45:02 +01:00
fhci-q.c USB: host: fhci: Remove redundant license text 2017-11-07 15:45:02 +01:00
fhci-sched.c usb: host: fix typo in the comment 2024-10-04 15:08:37 +02: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: FHCI: Switch to GPIO descriptors 2022-09-01 16:08:29 +02:00
fsl-mph-dr-of.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
isp116x-hcd.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
isp116x.h USB: host: isp116x: remove dentry pointer for debugfs 2021-03-10 09:37:15 +01:00
isp1362-hcd.c Merge 6.12-rc3 into usb-next 2024-10-14 08:03:44 +02:00
isp1362.h USB: host: isp1362: remove dentry pointer for debugfs 2021-03-10 09:37:15 +01:00
Kconfig xhci-pci: Make xhci-pci-renesas a proper modular driver 2024-08-07 12:51:38 +02:00
Makefile usb: host: u132-hcd: Delete driver 2023-03-21 14:06:11 +01:00
max3421-hcd.c usb: host: max3421-hcd: Replace snprintf() with the safer scnprintf() variant 2023-12-15 13:55:30 +01:00
octeon-hcd.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
octeon-hcd.h staging: octeon-usb: move driver out of staging 2022-06-21 16:43:37 +02:00
ohci-at91.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ohci-da8xx.c Merge 6.12-rc3 into usb-next 2024-10-14 08:03:44 +02:00
ohci-dbg.c usb: host: {e|o}hci-dbg: kill useless 'ret' variable initializers 2022-02-15 15:11:20 +01:00
ohci-exynos.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ohci-hcd.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ohci-hub.c usb: ohci: disable start-of-frame interrupt in ohci_rh_suspend 2021-10-21 12:48:18 +02:00
ohci-mem.c usb: host: Fix excessive alignment restriction for local memory allocations 2019-06-28 07:57:07 +02:00
ohci-nxp.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ohci-omap.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ohci-pci.c USB: Extend pci resume function to handle PM events 2023-05-13 17:33:18 +09:00
ohci-platform.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ohci-ppc-of.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ohci-ps3.c powerpc/ps3: make system bus's remove and shutdown callbacks return void 2020-12-04 01:01:22 +11:00
ohci-pxa27x.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ohci-q.c USB: OHCI: Use fallthrough pseudo-keyword 2020-07-10 08:55:18 +02:00
ohci-s3c2410.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ohci-sa1111.c ARM: sa1100: remove unused board files 2023-01-12 10:53:12 +01:00
ohci-sm501.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ohci-spear.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ohci-st.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
ohci.h usb: Annotate struct urb_priv with __counted_by 2023-10-02 09:48:52 -07:00
oxu210hp-hcd.c drivers/usb/host: refactor min/max with min_t/max_t 2024-11-13 15:09:50 +01:00
pci-quirks.c usb: pci-quirks: handle HAS_IOPORT dependency for UHCI handoff 2023-10-02 16:19:13 +02:00
pci-quirks.h usb: pci-quirks: handle HAS_IOPORT dependency for AMD quirk 2023-10-02 16:19:12 +02:00
r8a66597-hcd.c drivers/usb/host: refactor min/max with min_t/max_t 2024-11-13 15:09:50 +01:00
r8a66597.h USB: host: Use the correct style for SPDX License Identifier 2020-04-16 14:32:46 +02:00
sl811-hcd.c Merge 6.12-rc3 into usb-next 2024-10-14 08:03:44 +02:00
sl811.h USB: host: sl811: remove dentry pointer for debugfs 2021-03-10 09:37:15 +01:00
sl811_cs.c usb: host: Mundane spello fix in the file sl811_cs.c 2021-03-18 09:02:27 +01:00
ssb-hcd.c USB: host: Remove redundant license text 2017-11-07 15:45:02 +01:00
uhci-debug.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
uhci-grlib.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
uhci-hcd.c usb: uhci: handle HAS_IOPORT dependencies 2023-05-29 15:29:03 +01:00
uhci-hcd.h usb: uhci: handle HAS_IOPORT dependencies 2023-05-29 15:29:03 +01:00
uhci-hub.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
uhci-pci.c Merge 6.4-rc4 into usb-next 2023-05-28 15:25:53 +01:00
uhci-platform.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
uhci-q.c USB: remove the URB_NO_FSBR flag 2017-12-12 13:16:07 +01:00
xen-hcd.c xen: make remove callback of xen driver void returned 2022-12-15 16:06:10 +01:00
xhci-caps.h XHCI: Separate PORT and CAPs macros into dedicated file 2024-01-27 17:39:09 -08:00
xhci-dbg.c usb: xhci: Cleanup printk debug message for ERST 2017-12-08 17:43:52 +01:00
xhci-dbgcap.c usb: xhci: remove option to change a default ring's TRB cycle bit 2024-11-06 13:26:14 +01:00
xhci-dbgcap.h xhci: dbc: honor usb transfer size boundaries. 2024-10-17 08:45:36 +02:00
xhci-dbgtty.c xhci: dbc: honor usb transfer size boundaries. 2024-10-17 08:45:36 +02:00
xhci-debugfs.c usb: xhci: introduce macro for ring segment list iteration 2024-11-06 13:26:14 +01: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: Use software node API with the properties 2021-02-05 10:08:19 +01:00
xhci-ext-caps.h xhci: Add USB4 tunnel detection for USB3 devices on Intel hosts 2024-09-03 09:54:39 +02:00
xhci-histb.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
xhci-hub.c Merge 6.12-rc3 into usb-next 2024-10-14 08:03:44 +02:00
xhci-mem.c usb: xhci: remove irrelevant comment 2024-11-06 13:26:16 +01:00
xhci-mtk-sch.c xhci: replace real & fake port with pointer to root hub port 2024-03-02 20:25:27 +01:00
xhci-mtk.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
xhci-mtk.h usb: xhci-mtk: fix a short packet issue of gen1 isoc-in transfer 2024-01-04 16:05:50 +01:00
xhci-mvebu.c usb: host: xhci: mvebu: Iterate over array indexes instead of using pointer math 2023-02-06 13:46:42 +01:00
xhci-mvebu.h Revert "usb: host: xhci: mvebu: make USB 3.0 PHY optional for Armada 3720" 2022-02-25 19:12:21 +05:30
xhci-pci-renesas.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
xhci-pci.c usb: cdns3: Synchronise PCI IDs via common data base 2024-11-13 07:16:31 +01:00
xhci-pci.h xhci-pci: Make xhci-pci-renesas a proper modular driver 2024-08-07 12:51:38 +02:00
xhci-plat.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
xhci-plat.h usb: xhci-plat: Don't include xhci.h 2024-04-23 16:25:29 -07:00
xhci-port.h XHCI: Separate PORT and CAPs macros into dedicated file 2024-01-27 17:39:09 -08:00
xhci-rcar.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
xhci-ring.c usb: xhci: Avoid queuing redundant Stop Endpoint commands 2024-11-06 13:26:16 +01:00
xhci-rzv2m.c usb: xhci-plat: Don't include xhci.h 2024-04-23 16:25:29 -07:00
xhci-rzv2m.h xhci: host: Add Renesas RZ/V2M SoC support 2023-01-25 15:48:17 +01:00
xhci-tegra.c Merge 6.12-rc4 into usb-next 2024-10-21 08:53:43 +02:00
xhci-trace.c xhci: Move functions to setup msi to xhci-pci 2023-03-23 17:25:22 +01:00
xhci-trace.h xhci: trace stream context at Set TR Deq command completion 2024-11-06 13:26:14 +01:00
xhci.c usb: xhci: Avoid queuing redundant Stop Endpoint commands 2024-11-06 13:26:16 +01:00
xhci.h usb: xhci: Avoid queuing redundant Stop Endpoint commands 2024-11-06 13:26:16 +01:00