* [PATCH v4 0/4] media: renesas: Add missing media_entity_cleanup() calls
@ 2026-07-04 20:15 Biren Pandya
2026-07-04 20:15 ` [PATCH v4 1/4] media: renesas: rcar-csi2: Add missing media_entity_cleanup() Biren Pandya
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Biren Pandya @ 2026-07-04 20:15 UTC (permalink / raw)
To: linux-media, linux-renesas-soc
Cc: Laurent Pinchart, Jacopo Mondi, Niklas Söderlund,
Sakari Ailus, Biju Das, Hans Verkuil, Tommaso Merciai,
Biren Pandya
This patch series addresses missing media_entity_cleanup() calls across
multiple Renesas platform drivers (rcar-csi2, csisp, rcar-vin, and
rzg2l-cru).
While media_entity_cleanup() is currently a no-op when
CONFIG_MEDIA_CONTROLLER is disabled (and even when enabled in modern
kernels, as pads are rarely dynamically allocated anymore), the media
subsystem guidelines strictly require drivers to call it to prevent future
leaks if the core framework behavior changes.
Changes in v4:
- Formatted commit messages to strictly adhere to the 75-character limit
per line to resolve checkpatch warnings on the mailing list.
- Removed unwrapped long lines from the commit descriptions.
Changes in v3:
- Addressed maintainer feedback from Jacopo Mondi to fix an unused-label
compilation error in rcar-csi2.c. The teardown inversion is now handled
cleanly inside the existing error path without requiring a new label.
Changes in v2:
- Introduced dedicated error labels in probe paths where shared error
labels previously caused media_entity_cleanup() to be skipped or improperly
called.
Biren Pandya (4):
media: renesas: rcar-csi2: Add missing media_entity_cleanup()
media: renesas: csisp: Add missing media_entity_cleanup()
media: renesas: rcar-core: Add missing media_entity_cleanup()
media: renesas: rzg2l-core: Add missing media_entity_cleanup()
drivers/media/platform/renesas/rcar-csi2.c | 2 ++
drivers/media/platform/renesas/rcar-isp/csisp.c | 5 ++++-
drivers/media/platform/renesas/rcar-vin/rcar-core.c | 5 ++++-
drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c | 1 +
4 files changed, 11 insertions(+), 2 deletions(-)
--
2.50.1 (Apple Git-155)
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v4 1/4] media: renesas: rcar-csi2: Add missing media_entity_cleanup()
2026-07-04 20:15 [PATCH v4 0/4] media: renesas: Add missing media_entity_cleanup() calls Biren Pandya
@ 2026-07-04 20:15 ` Biren Pandya
2026-07-04 20:15 ` [PATCH v4 2/4] media: renesas: csisp: " Biren Pandya
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Biren Pandya @ 2026-07-04 20:15 UTC (permalink / raw)
To: linux-media, linux-renesas-soc
Cc: Laurent Pinchart, Jacopo Mondi, Niklas Söderlund,
Sakari Ailus, Biju Das, Hans Verkuil, Tommaso Merciai,
Biren Pandya
The probe error paths and remove function are missing calls to
media_entity_cleanup(). Add them.
Signed-off-by: Biren Pandya <birenpandya@gmail.com>
---
drivers/media/platform/renesas/rcar-csi2.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/media/platform/renesas/rcar-csi2.c b/drivers/media/platform/renesas/rcar-csi2.c
index 7305cc4a04cb1..f9c818b0faf7e 100644
--- a/drivers/media/platform/renesas/rcar-csi2.c
+++ b/drivers/media/platform/renesas/rcar-csi2.c
@@ -2631,6 +2631,7 @@ static int rcsi2_probe(struct platform_device *pdev)
v4l2_subdev_cleanup(&priv->subdev);
error_pm_runtime:
pm_runtime_disable(&pdev->dev);
+ media_entity_cleanup(&priv->subdev.entity);
error_async:
v4l2_async_nf_unregister(&priv->notifier);
v4l2_async_nf_cleanup(&priv->notifier);
@@ -2646,6 +2647,7 @@ static void rcsi2_remove(struct platform_device *pdev)
v4l2_async_nf_cleanup(&priv->notifier);
v4l2_async_unregister_subdev(&priv->subdev);
v4l2_subdev_cleanup(&priv->subdev);
+ media_entity_cleanup(&priv->subdev.entity);
pm_runtime_disable(&pdev->dev);
}
--
2.50.1 (Apple Git-155)
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v4 2/4] media: renesas: csisp: Add missing media_entity_cleanup()
2026-07-04 20:15 [PATCH v4 0/4] media: renesas: Add missing media_entity_cleanup() calls Biren Pandya
2026-07-04 20:15 ` [PATCH v4 1/4] media: renesas: rcar-csi2: Add missing media_entity_cleanup() Biren Pandya
@ 2026-07-04 20:15 ` Biren Pandya
2026-07-04 20:15 ` [PATCH v4 3/4] media: renesas: rcar-core: " Biren Pandya
2026-07-04 20:15 ` [PATCH v4 4/4] media: renesas: rzg2l-core: " Biren Pandya
3 siblings, 0 replies; 5+ messages in thread
From: Biren Pandya @ 2026-07-04 20:15 UTC (permalink / raw)
To: linux-media, linux-renesas-soc
Cc: Laurent Pinchart, Jacopo Mondi, Niklas Söderlund,
Sakari Ailus, Biju Das, Hans Verkuil, Tommaso Merciai,
Biren Pandya
The probe error path and remove function are missing calls to
media_entity_cleanup(). Add a dedicated error_entity label so the
cleanup is only invoked when media_entity_pads_init() has actually
succeeded. This ensures that the teardown logic properly mirrors
initialization.
Signed-off-by: Biren Pandya <birenpandya@gmail.com>
---
drivers/media/platform/renesas/rcar-isp/csisp.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/media/platform/renesas/rcar-isp/csisp.c b/drivers/media/platform/renesas/rcar-isp/csisp.c
index 8fb2cc3b56503..61558a71ee358 100644
--- a/drivers/media/platform/renesas/rcar-isp/csisp.c
+++ b/drivers/media/platform/renesas/rcar-isp/csisp.c
@@ -539,7 +539,7 @@ static int risp_probe(struct platform_device *pdev)
ret = v4l2_subdev_init_finalize(&isp->subdev);
if (ret)
- goto error_notifier;
+ goto error_entity;
ret = v4l2_async_register_subdev(&isp->subdev);
if (ret < 0)
@@ -551,6 +551,8 @@ static int risp_probe(struct platform_device *pdev)
error_subdev:
v4l2_subdev_cleanup(&isp->subdev);
+error_entity:
+ media_entity_cleanup(&isp->subdev.entity);
error_notifier:
v4l2_async_nf_unregister(&isp->notifier);
v4l2_async_nf_cleanup(&isp->notifier);
@@ -569,6 +571,7 @@ static void risp_remove(struct platform_device *pdev)
v4l2_async_unregister_subdev(&isp->subdev);
v4l2_subdev_cleanup(&isp->subdev);
+ media_entity_cleanup(&isp->subdev.entity);
pm_runtime_disable(&pdev->dev);
}
--
2.50.1 (Apple Git-155)
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v4 3/4] media: renesas: rcar-core: Add missing media_entity_cleanup()
2026-07-04 20:15 [PATCH v4 0/4] media: renesas: Add missing media_entity_cleanup() calls Biren Pandya
2026-07-04 20:15 ` [PATCH v4 1/4] media: renesas: rcar-csi2: Add missing media_entity_cleanup() Biren Pandya
2026-07-04 20:15 ` [PATCH v4 2/4] media: renesas: csisp: " Biren Pandya
@ 2026-07-04 20:15 ` Biren Pandya
2026-07-04 20:15 ` [PATCH v4 4/4] media: renesas: rzg2l-core: " Biren Pandya
3 siblings, 0 replies; 5+ messages in thread
From: Biren Pandya @ 2026-07-04 20:15 UTC (permalink / raw)
To: linux-media, linux-renesas-soc
Cc: Laurent Pinchart, Jacopo Mondi, Niklas Söderlund,
Sakari Ailus, Biju Das, Hans Verkuil, Tommaso Merciai,
Biren Pandya
The probe error path and remove function are missing calls to
media_entity_cleanup(). Add a dedicated err_entity label so the
cleanup is only invoked when media_entity_pads_init() has actually
succeeded. This ensures that the teardown logic properly mirrors
initialization.
Signed-off-by: Biren Pandya <birenpandya@gmail.com>
---
drivers/media/platform/renesas/rcar-vin/rcar-core.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/media/platform/renesas/rcar-vin/rcar-core.c b/drivers/media/platform/renesas/rcar-vin/rcar-core.c
index c8d564aa1eba8..5bae8eb0ee19b 100644
--- a/drivers/media/platform/renesas/rcar-vin/rcar-core.c
+++ b/drivers/media/platform/renesas/rcar-vin/rcar-core.c
@@ -1211,7 +1211,7 @@ static int rcar_vin_probe(struct platform_device *pdev)
ret = rvin_create_controls(vin);
if (ret < 0)
- goto err_id;
+ goto err_entity;
switch (vin->info->model) {
case RCAR_GEN3:
@@ -1246,6 +1246,8 @@ static int rcar_vin_probe(struct platform_device *pdev)
err_ctrl:
rvin_free_controls(vin);
+err_entity:
+ media_entity_cleanup(&vin->vdev.entity);
err_id:
rvin_id_put(vin);
err_dma:
@@ -1270,6 +1272,7 @@ static void rcar_vin_remove(struct platform_device *pdev)
rvin_group_put(vin);
rvin_free_controls(vin);
+ media_entity_cleanup(&vin->vdev.entity);
rvin_id_put(vin);
--
2.50.1 (Apple Git-155)
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v4 4/4] media: renesas: rzg2l-core: Add missing media_entity_cleanup()
2026-07-04 20:15 [PATCH v4 0/4] media: renesas: Add missing media_entity_cleanup() calls Biren Pandya
` (2 preceding siblings ...)
2026-07-04 20:15 ` [PATCH v4 3/4] media: renesas: rcar-core: " Biren Pandya
@ 2026-07-04 20:15 ` Biren Pandya
3 siblings, 0 replies; 5+ messages in thread
From: Biren Pandya @ 2026-07-04 20:15 UTC (permalink / raw)
To: linux-media, linux-renesas-soc
Cc: Laurent Pinchart, Jacopo Mondi, Niklas Söderlund,
Sakari Ailus, Biju Das, Hans Verkuil, Tommaso Merciai,
Biren Pandya
The remove function is missing a call to media_entity_cleanup(). Add it.
Signed-off-by: Biren Pandya <birenpandya@gmail.com>
---
drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c
index 3c5fbd857371c..84d4883e2fe7a 100644
--- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c
+++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c
@@ -312,6 +312,7 @@ static void rzg2l_cru_remove(struct platform_device *pdev)
v4l2_async_nf_cleanup(&cru->notifier);
rzg2l_cru_video_unregister(cru);
+ media_entity_cleanup(&cru->vdev.entity);
media_device_cleanup(&cru->mdev);
mutex_destroy(&cru->mdev_lock);
--
2.50.1 (Apple Git-155)
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-07-04 20:15 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-04 20:15 [PATCH v4 0/4] media: renesas: Add missing media_entity_cleanup() calls Biren Pandya
2026-07-04 20:15 ` [PATCH v4 1/4] media: renesas: rcar-csi2: Add missing media_entity_cleanup() Biren Pandya
2026-07-04 20:15 ` [PATCH v4 2/4] media: renesas: csisp: " Biren Pandya
2026-07-04 20:15 ` [PATCH v4 3/4] media: renesas: rcar-core: " Biren Pandya
2026-07-04 20:15 ` [PATCH v4 4/4] media: renesas: rzg2l-core: " Biren Pandya
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox