summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMing Qian <ming.qian@oss.nxp.com>2025-09-16 14:10:07 +0800
committerHans Verkuil <hverkuil+cisco@kernel.org>2025-10-20 09:23:17 +0200
commitae246b0032146e352c4c06a7bf03cd3d5bcb2ecd (patch)
tree5722f07bdee848cd010774ae16fd963778ec5ccb
parent634c2cd17bd021487c57b95973bddb14be8002ff (diff)
media: amphion: Cancel message work before releasing the VPU core
To avoid accessing the VPU register after release of the VPU core, cancel the message work and destroy the workqueue that handles the VPU message before release of the VPU core. Fixes: 3cd084519c6f ("media: amphion: add vpu v4l2 m2m support") Cc: stable@vger.kernel.org Signed-off-by: Ming Qian <ming.qian@oss.nxp.com> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
-rw-r--r--drivers/media/platform/amphion/vpu_v4l2.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/media/platform/amphion/vpu_v4l2.c b/drivers/media/platform/amphion/vpu_v4l2.c
index 511881a131b7..47dff9a35bb4 100644
--- a/drivers/media/platform/amphion/vpu_v4l2.c
+++ b/drivers/media/platform/amphion/vpu_v4l2.c
@@ -703,15 +703,15 @@ static int vpu_v4l2_release(struct vpu_inst *inst)
{
vpu_trace(inst->vpu->dev, "%p\n", inst);
- vpu_release_core(inst->core);
- put_device(inst->dev);
-
if (inst->workqueue) {
cancel_work_sync(&inst->msg_work);
destroy_workqueue(inst->workqueue);
inst->workqueue = NULL;
}
+ vpu_release_core(inst->core);
+ put_device(inst->dev);
+
v4l2_ctrl_handler_free(&inst->ctrl_handler);
mutex_destroy(&inst->lock);