media: renesas: vsp1: Fix NULL pointer deref on module unload

When unloading the module on gen 4, we hit a NULL pointer dereference.
This is caused by the cleanup code calling vsp1_drm_cleanup() where it
should be calling vsp1_vspx_cleanup().

Fix this by checking the IP version and calling the drm or vspx function
accordingly, the same way as the init code does.

Fixes: d06c1a9f34 ("media: vsp1: Add VSPX support")
Cc: stable@vger.kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
This commit is contained in:
Tomi Valkeinen 2026-01-15 11:22:35 +02:00 committed by Hans Verkuil
parent 8015a49d8b
commit 58b1e9664d

View File

@ -240,8 +240,12 @@ static void vsp1_destroy_entities(struct vsp1_device *vsp1)
media_device_unregister(&vsp1->media_dev);
media_device_cleanup(&vsp1->media_dev);
if (!vsp1->info->uapi)
vsp1_drm_cleanup(vsp1);
if (!vsp1->info->uapi) {
if (vsp1->info->version == VI6_IP_VERSION_MODEL_VSPX_GEN4)
vsp1_vspx_cleanup(vsp1);
else
vsp1_drm_cleanup(vsp1);
}
}
static int vsp1_create_entities(struct vsp1_device *vsp1)