Re: [PATCH] platform: set of_node in platform_device_register_full()

From: Rafael J. Wysocki
Date: Sun Feb 17 2019 - 16:36:35 EST


On Sat, Feb 16, 2019 at 5:50 PM Mans Rullgard <mans@xxxxxxxxx> wrote:
>
> If the provided fwnode is an OF node, set dev.of_node as well.
>
> Signed-off-by: Mans Rullgard <mans@xxxxxxxxx>
> ---
> 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?

>
> if (pdevinfo->dma_mask) {
> /*
> --
> 2.20.1
>