linux/drivers/usb/phy
Johan Hovold 5d3df03f70 usb: phy: isp1301: fix non-OF device reference imbalance
commit b4b64fda4d upstream.

A recent change fixing a device reference leak in a UDC driver
introduced a potential use-after-free in the non-OF case as the
isp1301_get_client() helper only increases the reference count for the
returned I2C device in the OF case.

Increment the reference count also for non-OF so that the caller can
decrement it unconditionally.

Note that this is inherently racy just as using the returned I2C device
is since nothing is preventing the PHY driver from being unbound while
in use.

Fixes: c84117912b ("USB: lpc32xx_udc: Fix error handling in probe")
Cc: stable@vger.kernel.org
Cc: Ma Ke <make24@iscas.ac.cn>
Signed-off-by: Johan Hovold <johan@kernel.org>
Reviewed-by: Vladimir Zapolskiy <vz@mleia.com>
Link: https://patch.msgid.link/20251218153519.19453-3-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2026-01-08 10:14:17 +01:00
..
Kconfig usb: phy: remove phy-isp1301-omap driver 2023-01-12 10:53:11 +01:00
Makefile usb: phy: remove phy-isp1301-omap driver 2023-01-12 10:53:11 +01:00
of.c USB: phy: Remove redundant license text 2017-11-07 15:45:01 +01:00
phy-ab8500-usb.c usb: phy: ab8500: Convert to platform remove callback returning void 2023-03-23 17:35:27 +01:00
phy-am335x-control.c usb: phy: add missing MODULE_DESCRIPTION() macros 2024-06-20 19:18:32 +02:00
phy-am335x-control.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
phy-am335x.c usb: phy: add missing MODULE_DESCRIPTION() macros 2024-06-20 19:18:32 +02:00
phy-fsl-usb.c usb: phy: fsl-usb: Fix use-after-free in delayed work during device removal 2026-01-08 10:14:17 +01:00
phy-fsl-usb.h USB: phy: fsl-usb: remove character device usage 2020-07-03 10:18:41 +02:00
phy-generic.c usb: phy: generic: Use proper helper for property detection 2025-03-22 12:54:16 -07:00
phy-generic.h usb: phy-generic: Delete unused platform data 2020-01-15 10:39:20 +01:00
phy-gpio-vbus-usb.c usb: phy: phy-gpio-vbus-usb: fix module autoloading 2024-08-25 13:45:56 +02:00
phy-isp1301.c usb: phy: isp1301: fix non-OF device reference imbalance 2026-01-08 10:14:17 +01:00
phy-keystone.c usb: phy: keystone: Convert to platform remove callback returning void 2023-03-23 17:35:27 +01:00
phy-mv-usb.c usb: phy: mv: Convert to platform remove callback returning void 2023-03-23 17:35:27 +01:00
phy-mv-usb.h USB: phy: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
phy-mxs-usb.c usb: phy: mxs: enable weak 1p1 regulator for imx6ul during suspend 2024-08-13 10:32:26 +02:00
phy-omap-otg.c extcon: Fix extcon_get_extcon_dev() error handling 2022-05-13 17:03:40 +09:00
phy-tahvo.c usb: phy: phy-tahvo: fix memory leak in tahvo_usb_probe() 2023-05-29 15:49:16 +01:00
phy-tegra-usb.c usb: Explicitly include correct DT includes 2023-07-25 18:20:02 +02:00
phy-twl6030-usb.c usb: phy: twl6030: Fix incorrect type for ret 2025-10-15 12:00:08 +02:00
phy-ulpi-viewport.c usb: phy-ulpi-viewport: convert to readl_poll_timeout_atomic() 2020-09-25 16:30:05 +02:00
phy-ulpi.c usb: ulpi: Add resource-managed variant of otg_ulpi_create() 2020-01-09 16:21:57 +01:00
phy.c usb: phy: Initialize struct usb_phy list_head 2025-12-18 13:55:23 +01:00