From nobody Mon Oct 6 04:55:32 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A20242D6614; Thu, 24 Jul 2025 13:12:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753362746; cv=none; b=V80Zws+LSOt/4IezpZ32rlCasRJ1CDMcw7pm5LsLM/WZOGjoUvYj8TcRG5UmEB4myBQw0yO4jOQHXT/NHWdY2gj16mBrlYxF8jHR3w+iKXdC9JEQA25ZrvDpzt4/JRlm4yezHl3z3ATQwI16B7tojXFZu8HI8RadqIGq81DMIMs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753362746; c=relaxed/simple; bh=DqDisvUI7fPFycDWsUDlI/ksWHfJtT5+KAlRMyouAc8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=si9JopFi/+Sr7GmmGfwc0/sf6tAycqJwK4+7iZt/IxTTzdmbpJ2TKa/fMhmoifyelZQKjpAcN7pZ8CzjlDhyHfG3dMmd8Taeuvp1BK2S6oFoRBObOtKLVAy80Ud7VGVIKJOKsamn4pouvwzGKj+Nikk1cz2JYQ77iR1/CM36bx8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tjAEzzz4; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tjAEzzz4" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 304B2C4CEF5; Thu, 24 Jul 2025 13:12:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1753362746; bh=DqDisvUI7fPFycDWsUDlI/ksWHfJtT5+KAlRMyouAc8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tjAEzzz4+teYNLIHuorMBoN50S9frIBjrrKydIwPqisvpjzXvdBVPXHywWNJjqTjj f24HAN4kFKjbGw87cUWQ5W8MeXh45U3DzcMVifDcJOlidjdrPAE+B0Df4qj2+MQy5v sWxfW3WBICyi6b3x757+H0zvP0XWkUHxQ1xV09lK4TG5O+OSTx25pNI1VJnhTo/3pd SFAOkqWsaS5NKPyXyk/ef9NTzrWVaFWfJcQJesalbiUId+go8WF9pAF1/ENI2LHzKE ARkSPQAHDjhOjs0qGZrOjDlN0BTTg4vWz98H92BzaB7ecM41g0/Hc3H9xxPfaY4iaA 9PnJCeUxWCIhQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1uevkD-000000000aH-2enV; Thu, 24 Jul 2025 15:12:21 +0200 From: Johan Hovold To: Vinod Koul Cc: JC Kuo , Kishon Vijay Abraham I , Thierry Reding , Jonathan Hunter , linux-phy@lists.infradead.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 1/3] phy: tegra: xusb: fix device and OF node leak at probe Date: Thu, 24 Jul 2025 15:12:04 +0200 Message-ID: <20250724131206.2211-2-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250724131206.2211-1-johan@kernel.org> References: <20250724131206.2211-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make sure to drop the references taken to the PMC OF node and device by of_parse_phandle() and of_find_device_by_node() during probe. Note the holding a reference to the PMC device does not prevent the PMC regmap from going away (e.g. if the PMC driver is unbound) so there is no need to keep the reference. Fixes: 2d1021487273 ("phy: tegra: xusb: Add wake/sleepwalk for Tegra210") Cc: stable@vger.kernel.org # 5.14 Cc: JC Kuo Signed-off-by: Johan Hovold Reviewed-by: Neil Armstrong --- drivers/phy/tegra/xusb-tegra210.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/phy/tegra/xusb-tegra210.c b/drivers/phy/tegra/xusb-teg= ra210.c index ebc8a7e21a31..3409924498e9 100644 --- a/drivers/phy/tegra/xusb-tegra210.c +++ b/drivers/phy/tegra/xusb-tegra210.c @@ -3164,18 +3164,22 @@ tegra210_xusb_padctl_probe(struct device *dev, } =20 pdev =3D of_find_device_by_node(np); + of_node_put(np); if (!pdev) { dev_warn(dev, "PMC device is not available\n"); goto out; } =20 - if (!platform_get_drvdata(pdev)) + if (!platform_get_drvdata(pdev)) { + put_device(&pdev->dev); return ERR_PTR(-EPROBE_DEFER); + } =20 padctl->regmap =3D dev_get_regmap(&pdev->dev, "usb_sleepwalk"); if (!padctl->regmap) dev_info(dev, "failed to find PMC regmap\n"); =20 + put_device(&pdev->dev); out: return &padctl->base; } --=20 2.49.1 From nobody Mon Oct 6 04:55:32 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 624102BE643; Thu, 24 Jul 2025 13:12:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753362746; cv=none; b=k1VII//pd3U1+JqbO8K0WcdFak/CxZ4I1ym0CsvjZLtoM/YP34YkDeG0gL27y3F6vkkDTzG1fmtAtb97PFAQ8S+lRy7bUClTewFYWWZSBwq1KR/6let01JEt0VjyGP0ScYFviV0KM0QoiBXUJ6ZNKS9LqhBgYZyGPAdFHskVAgs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753362746; c=relaxed/simple; bh=EnT4paXlhJPUP8+mIB7o5aRRtP4WZADwwl9CUlZpo3E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KoxCHxP7rzKr0d5E/vk/tC9/n7k3rmpjBoD7rj7Ddz6yXymZlJhi+wDLJrzFGrd/4Kp2DrE3PZcUjt4cOt5v06I7ces1+cIAJJYhNJnalqMHfdX2IBXquVKnXBf+Na8ipAfWCvP1p29s8EsuwgTB9m9MEsYt4ZAKbOPmst2vR+E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UwGwjMgX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UwGwjMgX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3E69DC4CEF6; Thu, 24 Jul 2025 13:12:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1753362746; bh=EnT4paXlhJPUP8+mIB7o5aRRtP4WZADwwl9CUlZpo3E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UwGwjMgX1qyHE8qc85t9P1ww2WhT8ej49SDR8kJ8+OSfgvj1wkzBQQQROHe6iJlJP hEB5pytAVYQ2LUvYPANfxGkg6H2rizGopewMdHWENxGIneAJwDMhvhGACzXl9YkSsW eO6ML37EDCbMozshMwgiGo8crJNzSuL4cOPE+5tirlILnd+Xxhe1MCaxX5jQyUEl1U izMkVS4f5SPBiQIETJOOFKDradG8dYbXN7UygsssANEi2Ztg5nVpmwDwJKzWN3nDox Q4lt1fQwCgmXVJ9El3nzZ7IsvzlfL11G+GC+0BFC/6ptNTiNPJsR+b1tUImBkZ3pl2 3tytPYqCkZewQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1uevkD-000000000aJ-34An; Thu, 24 Jul 2025 15:12:21 +0200 From: Johan Hovold To: Vinod Koul Cc: JC Kuo , Kishon Vijay Abraham I , Thierry Reding , Jonathan Hunter , linux-phy@lists.infradead.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Roger Quadros Subject: [PATCH 2/3] phy: ti: omap-usb2: fix device leak at unbind Date: Thu, 24 Jul 2025 15:12:05 +0200 Message-ID: <20250724131206.2211-3-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250724131206.2211-1-johan@kernel.org> References: <20250724131206.2211-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make sure to drop the reference to the control device taken by of_find_device_by_node() during probe when the driver is unbound. Fixes: 478b6c7436c2 ("usb: phy: omap-usb2: Don't use omap_get_control_dev()= ") Cc: stable@vger.kernel.org # 3.13 Cc: Roger Quadros Signed-off-by: Johan Hovold --- drivers/phy/ti/phy-omap-usb2.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/phy/ti/phy-omap-usb2.c b/drivers/phy/ti/phy-omap-usb2.c index c1a0ef979142..c444bb2530ca 100644 --- a/drivers/phy/ti/phy-omap-usb2.c +++ b/drivers/phy/ti/phy-omap-usb2.c @@ -363,6 +363,13 @@ static void omap_usb2_init_errata(struct omap_usb *phy) phy->flags |=3D OMAP_USB2_DISABLE_CHRG_DET; } =20 +static void omap_usb2_put_device(void *_dev) +{ + struct device *dev =3D _dev; + + put_device(dev); +} + static int omap_usb2_probe(struct platform_device *pdev) { struct omap_usb *phy; @@ -373,6 +380,7 @@ static int omap_usb2_probe(struct platform_device *pdev) struct device_node *control_node; struct platform_device *control_pdev; const struct usb_phy_data *phy_data; + int ret; =20 phy_data =3D device_get_match_data(&pdev->dev); if (!phy_data) @@ -423,6 +431,11 @@ static int omap_usb2_probe(struct platform_device *pde= v) return -EINVAL; } phy->control_dev =3D &control_pdev->dev; + + ret =3D devm_add_action_or_reset(&pdev->dev, omap_usb2_put_device, + phy->control_dev); + if (ret) + return ret; } else { if (of_property_read_u32_index(node, "syscon-phy-power", 1, --=20 2.49.1 From nobody Mon Oct 6 04:55:32 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D19932D77FF; Thu, 24 Jul 2025 13:12:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753362746; cv=none; b=PFT7X20fd4WSOfEFjGbcOlfrkt+d8UPFLJ7xEgFBE2aZIi2rcNvP00fM64DUn55Ugzdf9yy9lN90NWpYkrKpAA+WkOQGZ1WW876C+KnEGRTKv58k32Fp89CGY8t5HxqkPlr8ZoU4Eo6dwb5iRB2v06/KtSL5f5wnQEkARCqRCRI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753362746; c=relaxed/simple; bh=OCFXvHWz9Bj8TDQec1Lq7R+FarRLGYrv4c6C8ybgBgg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=F06lx7W84Ck2gZEPnvXWnAvAZn4Q5d+adWZuNwo6lW0HVEKOovac9vj+cWgsWjy7z+GbZFLdip1E7V1UAOUgOBpiTQBUFxMDlSvCUMZcI9zl6O3cC4yTtVQFNqGrAVd+V3gtIC/0s2iPZBFwcP4MH/03m61RajjuHx5drIrKFs4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Kfx+E2QO; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Kfx+E2QO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7CEA7C4CEF7; Thu, 24 Jul 2025 13:12:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1753362746; bh=OCFXvHWz9Bj8TDQec1Lq7R+FarRLGYrv4c6C8ybgBgg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Kfx+E2QOn2KChvZeQD5hgSNiDz7PoR0oC58JcuKE5RIb6pE+Y21BctrIJm3YyQ1il H0nrcUwKsw+pr58xzK/u7AR+TpR3TjR1wyI0KDx+zfcy4IegnSKZynO38X3foJEHrc q034ZV+qiPIYRM93WxNIrrVOCJNAqXJ2DjMrJG3nS6qYdl2vTNbL9XcYhV8PiC9BF5 btPP4ENv+XxDoNTnmMZsLgG6yns4TAIoApuW4Kmb2imtS3DHzjozqRgmJsPXoyOwr/ h9uv1jeAsd4P8mRsbPpDE2ZGZ4WuCF/HZxNqnDumqth1TydcPxj6zB0R4Wn5gtXT8+ QZHtqyBHwQ1Xg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1uevkD-000000000aL-3OOa; Thu, 24 Jul 2025 15:12:21 +0200 From: Johan Hovold To: Vinod Koul Cc: JC Kuo , Kishon Vijay Abraham I , Thierry Reding , Jonathan Hunter , linux-phy@lists.infradead.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Roger Quadros Subject: [PATCH 3/3] phy: ti-pipe3: fix device leak at unbind Date: Thu, 24 Jul 2025 15:12:06 +0200 Message-ID: <20250724131206.2211-4-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250724131206.2211-1-johan@kernel.org> References: <20250724131206.2211-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make sure to drop the reference to the control device taken by of_find_device_by_node() during probe when the driver is unbound. Fixes: 918ee0d21ba4 ("usb: phy: omap-usb3: Don't use omap_get_control_dev()= ") Cc: stable@vger.kernel.org # 3.13 Cc: Roger Quadros Signed-off-by: Johan Hovold --- drivers/phy/ti/phy-ti-pipe3.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/phy/ti/phy-ti-pipe3.c b/drivers/phy/ti/phy-ti-pipe3.c index da2cbacb982c..ae764d6524c9 100644 --- a/drivers/phy/ti/phy-ti-pipe3.c +++ b/drivers/phy/ti/phy-ti-pipe3.c @@ -667,12 +667,20 @@ static int ti_pipe3_get_clk(struct ti_pipe3 *phy) return 0; } =20 +static void ti_pipe3_put_device(void *_dev) +{ + struct device *dev =3D _dev; + + put_device(dev); +} + static int ti_pipe3_get_sysctrl(struct ti_pipe3 *phy) { struct device *dev =3D phy->dev; struct device_node *node =3D dev->of_node; struct device_node *control_node; struct platform_device *control_pdev; + int ret; =20 phy->phy_power_syscon =3D syscon_regmap_lookup_by_phandle(node, "syscon-phy-power"); @@ -704,6 +712,11 @@ static int ti_pipe3_get_sysctrl(struct ti_pipe3 *phy) } =20 phy->control_dev =3D &control_pdev->dev; + + ret =3D devm_add_action_or_reset(dev, ti_pipe3_put_device, + phy->control_dev); + if (ret) + return ret; } =20 if (phy->mode =3D=3D PIPE3_MODE_PCIE) { --=20 2.49.1