drivers/net/ethernet/marvell/mv643xx_eth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Platform devices created with platform_device_alloc() call
platform_device_release() when the last reference to the device's
kobject is dropped. This function calls of_node_put() unconditionally.
This works fine for devices created with platform_device_register_full()
but users of the split approach (platform_device_alloc() +
platform_device_add()) must bump the reference of the of_node they
assign manually. Add the missing call to of_node_get().
Cc: stable@vger.kernel.org
Fixes: 76723bca2802 ("net: mv643xx_eth: add DT parsing support")
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
---
Resending separately as requested by Jakub
drivers/net/ethernet/marvell/mv643xx_eth.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c
index f9055b3d6fb10..1881583be5ce2 100644
--- a/drivers/net/ethernet/marvell/mv643xx_eth.c
+++ b/drivers/net/ethernet/marvell/mv643xx_eth.c
@@ -2780,7 +2780,7 @@ static int mv643xx_eth_shared_of_add_port(struct platform_device *pdev,
goto put_err;
}
ppdev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
- ppdev->dev.of_node = pnp;
+ ppdev->dev.of_node = of_node_get(pnp);
ret = platform_device_add_resources(ppdev, &res, 1);
if (ret)
--
2.47.3
On Tue, 2 Jun 2026 09:34:14 +0200 Bartosz Golaszewski wrote: > Platform devices created with platform_device_alloc() call > platform_device_release() when the last reference to the device's > kobject is dropped. This function calls of_node_put() unconditionally. > This works fine for devices created with platform_device_register_full() > but users of the split approach (platform_device_alloc() + > platform_device_add()) must bump the reference of the of_node they > assign manually. Add the missing call to of_node_get(). Where is it released? I think it's important to note, I can amend the commit message if needed..
On Thu, 4 Jun 2026 08:34:30 -0700 Jakub Kicinski wrote: > On Tue, 2 Jun 2026 09:34:14 +0200 Bartosz Golaszewski wrote: > > Platform devices created with platform_device_alloc() call > > platform_device_release() when the last reference to the device's > > kobject is dropped. This function calls of_node_put() unconditionally. > > This works fine for devices created with platform_device_register_full() > > but users of the split approach (platform_device_alloc() + > > platform_device_add()) must bump the reference of the of_node they > > assign manually. Add the missing call to of_node_get(). > > Where is it released? I think it's important to note, I can amend > the commit message if needed.. Not enough coffee in the morning I guess.
© 2016 - 2026 Red Hat, Inc.