On Thu, Mar 26, 2026 at 02:40:25PM +0800, Liu Ying wrote: > Hi Luca, > > On Fri, Mar 20, 2026 at 11:46:12AM +0100, Luca Ceresoli wrote: >> Putting the remote device_node reference requires a of_node_put(ep) in both > > s/of_node_put(ep)/of_node_put(remote)/ > >> error return points. > > Should be cleanup points instead? > >> Use a cleanup action to simplify the code. >> >> Signed-off-by: Luca Ceresoli <[email protected]> >> --- >> drivers/gpu/drm/mxsfb/lcdif_drv.c | 9 +++------ >> 1 file changed, 3 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/gpu/drm/mxsfb/lcdif_drv.c >> b/drivers/gpu/drm/mxsfb/lcdif_drv.c >> index 47da1d9336b9..756ca96373c8 100644 >> --- a/drivers/gpu/drm/mxsfb/lcdif_drv.c >> +++ b/drivers/gpu/drm/mxsfb/lcdif_drv.c >> @@ -53,16 +53,13 @@ static int lcdif_attach_bridge(struct lcdif_drm_private >> *lcdif) >> int ret; >> >> for_each_endpoint_of_node(dev->of_node, ep) { >> - struct device_node *remote; >> + struct device_node *remote __free(drm_bridge_put) = > > s/drm_bridge_put/device_node/, though I know you've already realized the > mistake in a separate reply. > > With the above comments addressed:
+1 comment: include linux/cleanup.h as __free() is used. > Reviewed-by: Liu Ying <[email protected]> > >> + of_graph_get_remote_port_parent(ep); >> struct of_endpoint of_ep; >> struct drm_encoder *encoder; >> >> - remote = of_graph_get_remote_port_parent(ep); >> - if (!of_device_is_available(remote)) { >> - of_node_put(remote); >> + if (!of_device_is_available(remote)) >> continue; >> - } >> - of_node_put(remote); >> >> ret = of_graph_parse_endpoint(ep, &of_ep); >> if (ret < 0) { >> > -- Regards, Liu Ying
