Commit 986e0f65 authored by Sjoerd Simons's avatar Sjoerd Simons Committed by Greg Kroah-Hartman

uvcvideo: Remove buffers from the queues when freeing

commit 8ca2c80b upstream.

When freeing memory for the video buffers also remove them from the
irq & main queues.

This fixes an oops when doing the following:

open ("/dev/video", ..)
VIDIOC_REQBUFS
VIDIOC_QBUF
VIDIOC_REQBUFS
close ()

As the second VIDIOC_REQBUFS will cause the list entries of the buffers
to be cleared while they still hang around on the main and irc queues
Signed-off-by: default avatarSjoerd Simons <sjoerd.simons@collabora.co.uk>
Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent ae3862c4
......@@ -165,6 +165,8 @@ int uvc_free_buffers(struct uvc_video_queue *queue)
}
if (queue->count) {
uvc_queue_cancel(queue, 0);
INIT_LIST_HEAD(&queue->mainqueue);
vfree(queue->mem);
queue->count = 0;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment