summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartłomiej Grzesik <bag@semihalf.com>2022-12-14 10:39:19 +0000
committerRichard Fung <richardfung@google.com>2023-10-12 00:00:57 +0000
commita421ca43ace75c67182b9a370da6a2ef37e3e14d (patch)
tree1366bbf2dfdea332878bbaa98e9a19c3a299377d
parentcf7843c6455b4f5edc58f640d0b74c200580ceb5 (diff)
downloadvirtual-device-a421ca43ace75c67182b9a370da6a2ef37e3e14d.tar.gz
CHROMIUM: virtio: video: Cancel worker on release
Prior this patch, if a v4l2_m2m_ctx_release was called between queueing worker and it's execution, the worker would try to lock on an NULL mutex, causing kernel crash. This patch cancels a rending worker, before releasing an v4l2_m2m_ctx. Signed-off-by: Bartłomiej Grzesik <bag@semihalf.com> BUG=b:245795223 TEST=None Change-Id: I23f82d9409ca2c7d528df16f999c7ec32f75e91a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4106180 Tested-by: Bartłomiej Grzesik <bag@semihalf.com> Reviewed-by: Marcin Wojtas <mwojtas@google.com> Auto-Submit: Bartłomiej Grzesik <bag@semihalf.com> Commit-Queue: Marcin Wojtas <mwojtas@google.com>
-rw-r--r--drivers/media/virtio/virtio_video_device.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/media/virtio/virtio_video_device.c b/drivers/media/virtio/virtio_video_device.c
index 6d11753..de65906 100644
--- a/drivers/media/virtio/virtio_video_device.c
+++ b/drivers/media/virtio/virtio_video_device.c
@@ -1240,6 +1240,7 @@ static int virtio_video_device_release(struct file *file)
struct virtio_video_device *vvd = video_drvdata(file);
struct virtio_video *vv = vvd->vv;
+ cancel_work_sync(&stream->work);
virtio_video_stream_id_put(vv, stream);
v4l2_fh_del(&stream->fh);