]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: nuvoton: npcm-video: fix error handling in npcm_video_init()
authorDavid Carlier <devnexen@gmail.com>
Sat, 28 Mar 2026 18:17:49 +0000 (18:17 +0000)
committerHans Verkuil <hverkuil+cisco@kernel.org>
Tue, 5 May 2026 14:57:02 +0000 (16:57 +0200)
npcm_video_init() has two error handling issues after
of_reserved_mem_device_init() is called:

When dma_set_mask_and_coherent() fails, the function releases the
reserved memory but does not return, allowing execution to fall through
into npcm_video_ece_init() with a failed DMA configuration.

When npcm_video_ece_init() fails, the function returns an error without
calling of_reserved_mem_device_release(), leaking the reserved memory
association.

Fix both by adding the missing return after the DMA mask failure and
adding the missing of_reserved_mem_device_release() call on the ECE init
error path.

Fixes: 46c15a4ff1f4 ("media: nuvoton: Add driver for NPCM video capture and encoding engine")
Cc: stable@vger.kernel.org
Signed-off-by: David Carlier <devnexen@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
drivers/media/platform/nuvoton/npcm-video.c

index b2a562e1ee1cb540d79b4afe9d8336a119c7cd6e..5c6bddfe80732ab8868da8f513981cd7740887d6 100644 (file)
@@ -1720,10 +1720,12 @@ static int npcm_video_init(struct npcm_video *video)
        if (rc) {
                dev_err(dev, "Failed to set DMA mask\n");
                of_reserved_mem_device_release(dev);
+               return rc;
        }
 
        rc = npcm_video_ece_init(video);
        if (rc) {
+               of_reserved_mem_device_release(dev);
                dev_err(dev, "Failed to initialize ECE\n");
                return rc;
        }