From 4199db0812509f6e295efc28d116403fc7e463db Mon Sep 17 00:00:00 2001 From: Hu Kejun Date: Fri, 14 Sep 2018 09:31:13 +0800 Subject: [PATCH] media: rk-isp10: fix lose buffer in qduf ioctl Change-Id: If1d8cf228642f08745d22856b19677164eaba980 Signed-off-by: Hu Kejun --- drivers/media/platform/rk-isp10/cif_isp10_v4l2.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/media/platform/rk-isp10/cif_isp10_v4l2.c b/drivers/media/platform/rk-isp10/cif_isp10_v4l2.c index c7139dfa53c5..6742f438a731 100644 --- a/drivers/media/platform/rk-isp10/cif_isp10_v4l2.c +++ b/drivers/media/platform/rk-isp10/cif_isp10_v4l2.c @@ -906,16 +906,19 @@ static void cif_isp10_v4l2_vb2_queue(struct vb2_buffer *vb) enum cif_isp10_stream_id strm = to_cif_isp10_stream_id(queue); struct cif_isp10_stream *stream = to_stream_by_id(dev, strm); u32 size; + unsigned long lock_flags = 0; cif_isp10_pltfrm_pr_dbg(NULL, "buffer type %s\n", cif_isp10_v4l2_buf_type_string(queue->type)); + spin_lock_irqsave(&dev->vbq_lock, lock_flags); list_add_tail(&ispbuf->queue, &stream->buf_queue); cif_isp10_calc_min_out_buff_size(dev, strm, &size, false); //size = PAGE_ALIGN(size); vb2_set_plane_payload(vb, 0, size); + spin_unlock_irqrestore(&dev->vbq_lock, lock_flags); } static void cif_isp10_v4l2_vb2_stop_streaming(struct vb2_queue *queue)