• Julia Lawall's avatar
    drm/imx: imx-ldb: add missing of_node_puts · 04c5c4c4
    Julia Lawall authored
    [ Upstream commit aa331201 ]
    
    The device node iterators perform an of_node_get on each
    iteration, so a jump out of the loop requires an of_node_put.
    
    Move the initialization channel->child = child; down to just
    before the call to imx_ldb_register so that intervening failures
    don't need to clear it.  Add a label at the end of the function to
    do all the of_node_puts.
    
    The semantic patch that finds part of this problem is as follows
    (http://coccinelle.lip6.fr):
    
    // <smpl>
    @@
    expression root,e;
    local idexpression child;
    iterator name for_each_child_of_node;
    @@
    
     for_each_child_of_node(root, child) {
       ... when != of_node_put(child)
           when != e = child
    (
       return child;
    |
    *  return ...;
    )
       ...
     }
    // </smpl>
    Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
    Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    04c5c4c4
imx-ldb.c 20.4 KB