Patch "staging: media: imx: fix OF node leak in imx_media_add_of_subdevs()" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    staging: media: imx: fix OF node leak in imx_media_add_of_subdevs()

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     staging-media-imx-fix-of-node-leak-in-imx_media_add_.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 423a1d5431cf508472e6f36708faaf68e3b095e6
Author: Joe Hattori <joe@xxxxxxxxxxxxxxxxxxxxx>
Date:   Tue Dec 24 12:54:11 2024 +0900

    staging: media: imx: fix OF node leak in imx_media_add_of_subdevs()
    
    [ Upstream commit 094f5c315f756b19198e6c401aa821ac0e868750 ]
    
    imx_media_add_of_subdevs() calls of_parse_phandle() and passes the
    obtained node to imx_media_of_add_csi(). The passed node is used in
    v4l2_async_nf_add_fwnode(), which increments the refcount of the node.
    Therefore, while the current implementation only releases the node when
    imx_media_of_add_csi() fails, but should always release it. Call
    of_node_put() right after imx_media_of_add_csi().
    
    Fixes: dee747f88167 ("media: imx: Don't register IPU subdevs/links if CSI port missing")
    Signed-off-by: Joe Hattori <joe@xxxxxxxxxxxxxxxxxxxxx>
    Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@xxxxxxxxxx>
    Reviewed-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
    Signed-off-by: Hans Verkuil <hverkuil@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/staging/media/imx/imx-media-of.c b/drivers/staging/media/imx/imx-media-of.c
index 82e13e972e233..566e133ad3f42 100644
--- a/drivers/staging/media/imx/imx-media-of.c
+++ b/drivers/staging/media/imx/imx-media-of.c
@@ -55,22 +55,18 @@ int imx_media_add_of_subdevs(struct imx_media_dev *imxmd,
 			break;
 
 		ret = imx_media_of_add_csi(imxmd, csi_np);
+		of_node_put(csi_np);
 		if (ret) {
 			/* unavailable or already added is not an error */
 			if (ret == -ENODEV || ret == -EEXIST) {
-				of_node_put(csi_np);
 				continue;
 			}
 
 			/* other error, can't continue */
-			goto err_out;
+			return ret;
 		}
 	}
 
 	return 0;
-
-err_out:
-	of_node_put(csi_np);
-	return ret;
 }
 EXPORT_SYMBOL_GPL(imx_media_add_of_subdevs);




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux