mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 01:49:46 +00:00
sur40: fix occasional oopses on device close
commit 6a85881566 upstream.
Closing the V4L2 device sometimes triggers a kernel oops.
Present patch fixes this.
Signed-off-by: Martin Kaltenbrunner <modin@yuri.at>
Signed-off-by: Florian Echtler <floe@butterbrot.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
popcornmix
parent
2b4437a911
commit
0523e68f8a
@@ -441,7 +441,7 @@ static void sur40_process_video(struct sur40_state *sur40)
|
|||||||
|
|
||||||
/* return error if streaming was stopped in the meantime */
|
/* return error if streaming was stopped in the meantime */
|
||||||
if (sur40->sequence == -1)
|
if (sur40->sequence == -1)
|
||||||
goto err_poll;
|
return;
|
||||||
|
|
||||||
/* mark as finished */
|
/* mark as finished */
|
||||||
v4l2_get_timestamp(&new_buf->vb.timestamp);
|
v4l2_get_timestamp(&new_buf->vb.timestamp);
|
||||||
@@ -730,6 +730,7 @@ static int sur40_start_streaming(struct vb2_queue *vq, unsigned int count)
|
|||||||
static void sur40_stop_streaming(struct vb2_queue *vq)
|
static void sur40_stop_streaming(struct vb2_queue *vq)
|
||||||
{
|
{
|
||||||
struct sur40_state *sur40 = vb2_get_drv_priv(vq);
|
struct sur40_state *sur40 = vb2_get_drv_priv(vq);
|
||||||
|
vb2_wait_for_all_buffers(vq);
|
||||||
sur40->sequence = -1;
|
sur40->sequence = -1;
|
||||||
|
|
||||||
/* Release all active buffers */
|
/* Release all active buffers */
|
||||||
|
|||||||
Reference in New Issue
Block a user