diff options
author | Bartłomiej Grzesik <bag@semihalf.com> | 2022-12-14 10:39:19 +0000 |
---|---|---|
committer | Richard Fung <richardfung@google.com> | 2023-10-12 00:00:57 +0000 |
commit | a421ca43ace75c67182b9a370da6a2ef37e3e14d (patch) | |
tree | 1366bbf2dfdea332878bbaa98e9a19c3a299377d | |
parent | cf7843c6455b4f5edc58f640d0b74c200580ceb5 (diff) | |
download | virtual-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.c | 1 |
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); |