On Mon, Feb 18, 2019 at 12:10 PM Måns Rullgård <[email protected]> wrote: > > "Rafael J. Wysocki" <[email protected]> writes: > > > On Sat, Feb 16, 2019 at 5:50 PM Mans Rullgard <[email protected]> wrote: > >> > >> If the provided fwnode is an OF node, set dev.of_node as well. > >> > >> Signed-off-by: Mans Rullgard <[email protected]> > >> --- > >> drivers/base/platform.c | 1 + > >> 1 file changed, 1 insertion(+) > >> > >> diff --git a/drivers/base/platform.c b/drivers/base/platform.c > >> index dff82a3c2caa..853a1d0e5845 100644 > >> --- a/drivers/base/platform.c > >> +++ b/drivers/base/platform.c > >> @@ -512,6 +512,7 @@ struct platform_device *platform_device_register_full( > >> > >> pdev->dev.parent = pdevinfo->parent; > >> pdev->dev.fwnode = pdevinfo->fwnode; > >> + pdev->dev.of_node = of_node_get(to_of_node(pdev->dev.fwnode)); > > > > of_node_get() generally does a kobject_get() on the node's kobject, so > > when is that reference dropped? Or if it doesn't need to be dropped > > at all, why is this the case? > > platform_device_release() calls of_device_node_put().
Yes, it does, but this is the reference that's already acquired for devices added while parsing DT, isn't it? Your change adds an extra reference AFAICS. Also, why is this patch needed?

