From: Luca Ceresoli Date: Tue, 7 Apr 2026 12:24:15 +0000 (+0200) Subject: drm/mxsfb/lcdif: simplify remote pointer management using __free X-Git-Tag: v7.2-rc1~141^2~26^2~97 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=1bff813f8864f72528da4e1b389b62360e9c26ad;p=thirdparty%2Flinux.git drm/mxsfb/lcdif: simplify remote pointer management using __free Putting the remote device_node reference requires a of_node_put(remote) in two places. Use a cleanup action to simplify the code. Reviewed-by: Liu Ying Tested-by: Martyn Welch Tested-by: Alexander Stein # TQMa8MPxL/MBa8MPxL Link: https://patch.msgid.link/20260407-drm-lcdif-dbanc-v4-1-247a16e61ef9@bootlin.com Signed-off-by: Luca Ceresoli --- diff --git a/drivers/gpu/drm/mxsfb/lcdif_drv.c b/drivers/gpu/drm/mxsfb/lcdif_drv.c index 47da1d9336b90..7719629487da5 100644 --- a/drivers/gpu/drm/mxsfb/lcdif_drv.c +++ b/drivers/gpu/drm/mxsfb/lcdif_drv.c @@ -5,6 +5,7 @@ * This code is based on drivers/gpu/drm/mxsfb/mxsfb* */ +#include #include #include #include @@ -53,16 +54,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(device_node) = + 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) {