Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f9994851 authored by Hans Verkuil's avatar Hans Verkuil Committed by Greg Kroah-Hartman
Browse files

media: vim2m: use cancel_delayed_work_sync instead of flush_schedule_work



[ Upstream commit 52117be68b82ee05c96da0a7beec319906ccf6cc ]

The use of flush_schedule_work() made no sense and caused a syzkaller error.
Replace with the correct cancel_delayed_work_sync().

Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Reported-by: default avatar <syzbot+69780d144754b8071f4b@syzkaller.appspotmail.com>
Cc: <stable@vger.kernel.org>      # for v4.20 and up
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent a7b6f95f
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -797,10 +797,11 @@ static int vim2m_start_streaming(struct vb2_queue *q, unsigned count)
static void vim2m_stop_streaming(struct vb2_queue *q)
{
	struct vim2m_ctx *ctx = vb2_get_drv_priv(q);
	struct vim2m_dev *dev = ctx->dev;
	struct vb2_v4l2_buffer *vbuf;
	unsigned long flags;

	flush_scheduled_work();
	cancel_delayed_work_sync(&dev->work_run);
	for (;;) {
		if (V4L2_TYPE_IS_OUTPUT(q->type))
			vbuf = v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx);