Message ID | 20240825135001.48963-2-krzysztof.kozlowski@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] memory: pl172: simplify releasing AMBA regions with devm | expand |
Hi Krzysztof, krzysztof.kozlowski@linaro.org wrote on Sun, 25 Aug 2024 15:50:01 +0200: > Use scoped for_each_available_child_of_node_scoped() when iterating over > device nodes to make code a bit simpler. > > Suggested-by: Jonathan Cameron <Jonathan.Cameron@Huawei.com> > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > --- > drivers/memory/pl353-smc.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/drivers/memory/pl353-smc.c b/drivers/memory/pl353-smc.c > index 994c7a792e34..28a8cc56003c 100644 > --- a/drivers/memory/pl353-smc.c > +++ b/drivers/memory/pl353-smc.c > @@ -74,7 +74,6 @@ static int pl353_smc_probe(struct amba_device *adev, const struct amba_id *id) > struct device_node *of_node = adev->dev.of_node; > const struct of_device_id *match = NULL; > struct pl353_smc_data *pl353_smc; > - struct device_node *child; > > pl353_smc = devm_kzalloc(&adev->dev, sizeof(*pl353_smc), GFP_KERNEL); > if (!pl353_smc) > @@ -93,12 +92,13 @@ static int pl353_smc_probe(struct amba_device *adev, const struct amba_id *id) > amba_set_drvdata(adev, pl353_smc); > > /* Find compatible children. Only a single child is supported */ > - for_each_available_child_of_node(of_node, child) { > + for_each_available_child_of_node_scoped(of_node, child) { > match = of_match_node(pl353_smc_supported_children, child); > if (!match) { > dev_warn(&adev->dev, "unsupported child node\n"); > continue; > } > + of_platform_device_create(child, NULL, &adev->dev); > break; > } > if (!match) { > @@ -106,9 +106,6 @@ static int pl353_smc_probe(struct amba_device *adev, const struct amba_id *id) > return -ENODEV; > } > > - of_platform_device_create(child, NULL, &adev->dev); > - of_node_put(child); > - > return 0; > } Nice. I didn't even know about the _scope() variant. Thanks Jonathan for the heads up! Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Cheers, Miquèl
diff --git a/drivers/memory/pl353-smc.c b/drivers/memory/pl353-smc.c index 994c7a792e34..28a8cc56003c 100644 --- a/drivers/memory/pl353-smc.c +++ b/drivers/memory/pl353-smc.c @@ -74,7 +74,6 @@ static int pl353_smc_probe(struct amba_device *adev, const struct amba_id *id) struct device_node *of_node = adev->dev.of_node; const struct of_device_id *match = NULL; struct pl353_smc_data *pl353_smc; - struct device_node *child; pl353_smc = devm_kzalloc(&adev->dev, sizeof(*pl353_smc), GFP_KERNEL); if (!pl353_smc) @@ -93,12 +92,13 @@ static int pl353_smc_probe(struct amba_device *adev, const struct amba_id *id) amba_set_drvdata(adev, pl353_smc); /* Find compatible children. Only a single child is supported */ - for_each_available_child_of_node(of_node, child) { + for_each_available_child_of_node_scoped(of_node, child) { match = of_match_node(pl353_smc_supported_children, child); if (!match) { dev_warn(&adev->dev, "unsupported child node\n"); continue; } + of_platform_device_create(child, NULL, &adev->dev); break; } if (!match) { @@ -106,9 +106,6 @@ static int pl353_smc_probe(struct amba_device *adev, const struct amba_id *id) return -ENODEV; } - of_platform_device_create(child, NULL, &adev->dev); - of_node_put(child); - return 0; }
Use scoped for_each_available_child_of_node_scoped() when iterating over device nodes to make code a bit simpler. Suggested-by: Jonathan Cameron <Jonathan.Cameron@Huawei.com> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- drivers/memory/pl353-smc.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)