Introduce the scoped variant of the loop to automatically release the
child node when it goes out of scope, which is more robust than the
non-scoped variant, and accounts for new early exits that could be added
in the future.

Signed-off-by: Javier Carrasco <javier.carrasco.c...@gmail.com>
---
 drivers/gpu/drm/mediatek/mtk_drm_drv.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c 
b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index 0878df832859..9ab656b10a49 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -372,12 +372,11 @@ static bool mtk_drm_get_all_drm_priv(struct device *dev)
        struct mtk_drm_private *temp_drm_priv;
        struct device_node *phandle = dev->parent->of_node;
        const struct of_device_id *of_id;
-       struct device_node *node;
        struct device *drm_dev;
        unsigned int cnt = 0;
        int i, j;
 
-       for_each_child_of_node(phandle->parent, node) {
+       for_each_child_of_node_scoped(phandle->parent, node) {
                struct platform_device *pdev;
 
                of_id = of_match_node(mtk_drm_of_ids, node);
@@ -406,10 +405,8 @@ static bool mtk_drm_get_all_drm_priv(struct device *dev)
                if (temp_drm_priv->mtk_drm_bound)
                        cnt++;
 
-               if (cnt == MAX_CRTC) {
-                       of_node_put(node);
+               if (cnt == MAX_CRTC)
                        break;
-               }
        }
 
        if (drm_priv->data->mmsys_dev_num == cnt) {

-- 
2.43.0

Reply via email to