From: Laurent Pinchart Date: Mon, 6 Jul 2020 18:36:17 +0000 (+0200) Subject: media: ti-vpe: cal: Unregister video device before cleanup X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=6675e871ca4dab14e849298767d34c2722f3ee1e;p=linux.git media: ti-vpe: cal: Unregister video device before cleanup In cal_remove(), unregister the video devices as the first operation, before cleaning up the V4L2 objects, to avoid use-after-free. This isn't a complete solution yet, as video nodes can be kept open across unregistration. Signed-off-by: Laurent Pinchart Reviewed-by: Benoit Parrot Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/platform/ti-vpe/cal.c b/drivers/media/platform/ti-vpe/cal.c index 5f218ac5fb60e..5580913a1356f 100644 --- a/drivers/media/platform/ti-vpe/cal.c +++ b/drivers/media/platform/ti-vpe/cal.c @@ -2320,11 +2320,11 @@ static int cal_remove(struct platform_device *pdev) if (ctx) { ctx_dbg(1, ctx, "unregistering %s\n", video_device_node_name(&ctx->vdev)); + cal_ctx_v4l2_unregister(ctx); cal_camerarx_disable(ctx->phy); v4l2_async_notifier_unregister(&ctx->notifier); v4l2_async_notifier_cleanup(&ctx->notifier); cal_ctx_v4l2_cleanup(ctx); - cal_ctx_v4l2_unregister(ctx); } }