linux/drivers/usb/musb
Zijun Hu 8a30da5aa9 usb: musb: sunxi: Fix accessing an released usb phy
commit 498dbd9aea upstream.

Commit 6ed05c68cb ("usb: musb: sunxi: Explicitly release USB PHY on
exit") will cause that usb phy @glue->xceiv is accessed after released.

1) register platform driver @sunxi_musb_driver
// get the usb phy @glue->xceiv
sunxi_musb_probe() -> devm_usb_get_phy().

2) register and unregister platform driver @musb_driver
musb_probe() -> sunxi_musb_init()
use the phy here
//the phy is released here
musb_remove() -> sunxi_musb_exit() -> devm_usb_put_phy()

3) register @musb_driver again
musb_probe() -> sunxi_musb_init()
use the phy here but the phy has been released at 2).
...

Fixed by reverting the commit, namely, removing devm_usb_put_phy()
from sunxi_musb_exit().

Fixes: 6ed05c68cb ("usb: musb: sunxi: Explicitly release USB PHY on exit")
Cc: stable@vger.kernel.org
Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
Link: https://lore.kernel.org/r/20241029-sunxi_fix-v1-1-9431ed2ab826@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2024-11-14 13:19:39 +01:00
..
cppi_dma.h usb: musb: Remove unused function declarations 2023-08-08 10:36:43 +02:00
da8xx.c usb: musb: da8xx: fix a resource leak in probe() 2024-07-05 09:33:58 +02:00
jz4740.c usb: Explicitly include correct DT includes 2023-07-25 18:20:02 +02:00
Kconfig usb: musb: mpfs: convert SOC_MICROCHIP_POLARFIRE to ARCH_MICROCHIP_POLARFIRE 2023-03-16 12:14:33 +01:00
Makefile usb: musb: Drop old unused am35x glue layer 2022-11-29 08:56:09 +01:00
mediatek.c usb: Explicitly include correct DT includes 2023-07-25 18:20:02 +02:00
mpfs.c usb: Explicitly include correct DT includes 2023-07-25 18:20:02 +02:00
musb_core.c usb: musb: Fix deferred probing 2023-08-04 14:45:58 +02:00
musb_core.h ARM/musb: omap2: Remove global GPIO numbers from TUSB6010 2023-05-24 15:01:59 +02:00
musb_cppi41.c usb: musb: cppi41: Switch to use dev_err_probe() helper 2022-09-27 10:36:06 +02:00
musb_debug.h USB: musb: Use the correct style for SPDX License Identifier 2020-04-16 14:32:47 +02:00
musb_debugfs.c usb: musb: Modify the "HWVers" register address 2023-10-02 13:37:08 +02:00
musb_dma.h usb: musb: Remove unused function declarations 2023-08-08 10:36:43 +02:00
musb_dsps.c usb: Explicitly include correct DT includes 2023-07-25 18:20:02 +02:00
musb_gadget.c usb: musb: Remove an unnecessary NULL value 2023-08-04 14:48:55 +02:00
musb_gadget.h USB: musb: Use the correct style for SPDX License Identifier 2020-04-16 14:32:47 +02:00
musb_gadget_ep0.c usb: musb: gadget: Use fallthrough pseudo-keyword 2020-10-10 12:32:29 +02:00
musb_host.c usb: musb: Get the musb_qh poniter after musb_giveback 2023-10-02 13:37:57 +02:00
musb_host.h usb: musb: Remove duplicate declaration of functions 2021-05-10 16:20:41 +02:00
musb_io.h USB: musb: Use the correct style for SPDX License Identifier 2020-04-16 14:32:47 +02:00
musb_regs.h USB: musb: Use the correct style for SPDX License Identifier 2020-04-16 14:32:47 +02:00
musb_trace.c USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
musb_trace.h usb: musb: tracing: Use the new __vstring() helper 2022-07-19 11:20:24 -04:00
musb_virthub.c usb: musb: Allow running without CONFIG_USB_PHY 2022-11-09 12:39:13 +01:00
musbhsdma.c usb: musb: dma: Remove unused variable 2021-02-05 10:27:18 +01:00
omap2430.c usb: musb: omap2430: Convert to platform remove callback returning void 2023-04-05 19:07:42 +02:00
omap2430.h USB: musb: Use the correct style for SPDX License Identifier 2020-04-16 14:32:47 +02:00
sunxi.c usb: musb: sunxi: Fix accessing an released usb phy 2024-11-14 13:19:39 +01:00
tusb6010.c usb: musb: Use read_poll_timeout() 2023-07-25 18:18:18 +02:00
tusb6010.h USB: musb: Use the correct style for SPDX License Identifier 2020-04-16 14:32:47 +02:00
tusb6010_omap.c USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
ux500.c usb: musb: ux500: Convert to platform remove callback returning void 2023-04-05 19:07:42 +02:00
ux500_dma.c usb: musb/ux500: Use dma_request_chan() instead dma_request_slave_channel() 2020-01-15 14:46:58 +01:00