On 11/07/2018 03:04 PM, Hans Verkuil wrote: > 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: Hans Verkuil <hans.verkuil> Mistyped that SoB, this should of course be: Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx> Regards, Hans > Reported-by: syzbot+69780d144754b8071f4b@xxxxxxxxxxxxxxxxxxxxxxxxx > --- > diff --git a/drivers/media/platform/vim2m.c b/drivers/media/platform/vim2m.c > index d82db738f174..f938a2c54314 100644 > --- a/drivers/media/platform/vim2m.c > +++ b/drivers/media/platform/vim2m.c > @@ -805,10 +805,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); >