media: rp1: cfe: Fix use of freed memory on errors
authorTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Thu, 28 Sep 2023 08:33:53 +0000 (11:33 +0300)
committerDom Cobley <popcornmix@gmail.com>
Mon, 19 Feb 2024 11:35:01 +0000 (11:35 +0000)
commitd777b4518d357f2e4941aca667ee6b7a1d4d3269
treea62a12c45ac0fc2f7efd3f0a24675127c4b3936c
parentb83f2d3b5aa0f583a67644cc9599e688cb9eea7c
media: rp1: cfe: Fix use of freed memory on errors

cfe_probe_complete() calls cfe_put() on both success and fail code paths.
This works for the success path, but causes the cfe_device struct to be
freed, even if it will be used later in the teardown code.

Fix this by making the ref handling a bit saner: Let the video nodes
have the refs as they do now, but also keep a ref in the "main" driver,
released only at cfe_remove() time. This way the driver does not depend
on the video nodes keeping the refs.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
drivers/media/platform/raspberrypi/rp1_cfe/cfe.c