--- /dev/null
+From 4d10452cd1ed619d95fde81cef837069f4c754cd Mon Sep 17 00:00:00 2001
+From: Dafna Hirschfeld <dafna3@gmail.com>
+Date: Wed, 6 Mar 2019 16:13:25 -0500
+Subject: media: vicodec: upon release, call m2m release before freeing ctrl handler
+
+From: Dafna Hirschfeld <dafna3@gmail.com>
+
+commit 4d10452cd1ed619d95fde81cef837069f4c754cd upstream.
+
+'v4l2_m2m_ctx_release' calls request complete
+so it should be called before 'v4l2_ctrl_handler_free'.
+
+Signed-off-by: Dafna Hirschfeld <dafna3@gmail.com>
+Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
+Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
+Cc: Minh Yuan <yuanmingbuaa@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/media/platform/vicodec/vicodec-core.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/media/platform/vicodec/vicodec-core.c
++++ b/drivers/media/platform/vicodec/vicodec-core.c
+@@ -1297,12 +1297,12 @@ static int vicodec_release(struct file *
+ struct video_device *vfd = video_devdata(file);
+ struct vicodec_ctx *ctx = file2ctx(file);
+
+- v4l2_fh_del(&ctx->fh);
+- v4l2_fh_exit(&ctx->fh);
+- v4l2_ctrl_handler_free(&ctx->hdl);
+ mutex_lock(vfd->lock);
+ v4l2_m2m_ctx_release(ctx->fh.m2m_ctx);
+ mutex_unlock(vfd->lock);
++ v4l2_fh_del(&ctx->fh);
++ v4l2_fh_exit(&ctx->fh);
++ v4l2_ctrl_handler_free(&ctx->hdl);
+ kfree(ctx);
+
+ return 0;