* [PATCH] net: mvneta: bm: fix device reference leak on failed lookup
@ 2026-07-09 8:27 Johan Hovold
2026-07-09 23:53 ` Harshitha Ramamurthy
0 siblings, 1 reply; 2+ messages in thread
From: Johan Hovold @ 2026-07-09 8:27 UTC (permalink / raw)
To: Marcin Wojtas, Andrew Lunn, David S Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni
Cc: Gregory CLEMENT, netdev, Johan Hovold, stable
Make sure to drop the reference taken to the buffer manager device when
attempting to look up its driver data before the driver has been bound.
Note that holding a reference to a device does not prevent its driver
data from going away.
Fixes: 965cbbec7f20 ("net: mvneta: remove data pointer usage from device_node structure")
Cc: stable@vger.kernel.org # 4.19
Cc: Gregory CLEMENT <gregory.clement@bootlin.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
---
drivers/net/ethernet/marvell/mvneta_bm.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/marvell/mvneta_bm.c b/drivers/net/ethernet/marvell/mvneta_bm.c
index 6bb380494919..128fe1f512b4 100644
--- a/drivers/net/ethernet/marvell/mvneta_bm.c
+++ b/drivers/net/ethernet/marvell/mvneta_bm.c
@@ -395,9 +395,20 @@ static void mvneta_bm_put_sram(struct mvneta_bm *priv)
struct mvneta_bm *mvneta_bm_get(struct device_node *node)
{
- struct platform_device *pdev = of_find_device_by_node(node);
+ struct platform_device *pdev;
+ struct mvneta_bm *priv;
+
+ pdev = of_find_device_by_node(node);
+ if (!pdev)
+ return NULL;
+
+ priv = platform_get_drvdata(pdev);
+ if (!priv) {
+ platform_device_put(pdev);
+ return NULL;
+ }
- return pdev ? platform_get_drvdata(pdev) : NULL;
+ return priv;
}
EXPORT_SYMBOL_GPL(mvneta_bm_get);
--
2.54.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] net: mvneta: bm: fix device reference leak on failed lookup
2026-07-09 8:27 [PATCH] net: mvneta: bm: fix device reference leak on failed lookup Johan Hovold
@ 2026-07-09 23:53 ` Harshitha Ramamurthy
0 siblings, 0 replies; 2+ messages in thread
From: Harshitha Ramamurthy @ 2026-07-09 23:53 UTC (permalink / raw)
To: Johan Hovold
Cc: Marcin Wojtas, Andrew Lunn, David S Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Gregory CLEMENT, netdev, stable
On Thu, Jul 9, 2026 at 1:32 AM Johan Hovold <johan@kernel.org> wrote:
>
> Make sure to drop the reference taken to the buffer manager device when
> attempting to look up its driver data before the driver has been bound.
>
> Note that holding a reference to a device does not prevent its driver
> data from going away.
>
> Fixes: 965cbbec7f20 ("net: mvneta: remove data pointer usage from device_node structure")
> Cc: stable@vger.kernel.org # 4.19
> Cc: Gregory CLEMENT <gregory.clement@bootlin.com>
> Signed-off-by: Johan Hovold <johan@kernel.org>
Okay, platform_device_put() has to be called directly instead of
mvneta_bm_put() because that takes in the priv structure.
Reviewed-by: Harshitha Ramamurthy <hramamurthy@google.com>
> ---
> drivers/net/ethernet/marvell/mvneta_bm.c | 15 +++++++++++++--
> 1 file changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/marvell/mvneta_bm.c b/drivers/net/ethernet/marvell/mvneta_bm.c
> index 6bb380494919..128fe1f512b4 100644
> --- a/drivers/net/ethernet/marvell/mvneta_bm.c
> +++ b/drivers/net/ethernet/marvell/mvneta_bm.c
> @@ -395,9 +395,20 @@ static void mvneta_bm_put_sram(struct mvneta_bm *priv)
>
> struct mvneta_bm *mvneta_bm_get(struct device_node *node)
> {
> - struct platform_device *pdev = of_find_device_by_node(node);
> + struct platform_device *pdev;
> + struct mvneta_bm *priv;
> +
> + pdev = of_find_device_by_node(node);
> + if (!pdev)
> + return NULL;
> +
> + priv = platform_get_drvdata(pdev);
> + if (!priv) {
> + platform_device_put(pdev);
> + return NULL;
> + }
>
> - return pdev ? platform_get_drvdata(pdev) : NULL;
> + return priv;
> }
> EXPORT_SYMBOL_GPL(mvneta_bm_get);
>
> --
> 2.54.0
>
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-09 23:53 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-09 8:27 [PATCH] net: mvneta: bm: fix device reference leak on failed lookup Johan Hovold
2026-07-09 23:53 ` Harshitha Ramamurthy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox