summaryrefslogtreecommitdiff
path: root/drivers/media/platform/soc_camera/mx2_camera.c
diff options
context:
space:
mode:
authorWei Yongjun <yongjun_wei@trendmicro.com.cn>2012-10-22 02:27:28 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-11-22 10:58:27 -0200
commitf1ccccaf23132a2eda036dd3978ebe3f020c5af9 (patch)
tree400820b4ca41e50b054230f10043ae4afa05401b /drivers/media/platform/soc_camera/mx2_camera.c
parent6a3082adc85a3acc9258ad2e4858abc55be9b514 (diff)
[media] mx2_camera: fix missing unlock on error in mx2_start_streaming()
Add the missing unlock on the error handle path in function mx2_start_streaming(). Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/platform/soc_camera/mx2_camera.c')
-rw-r--r--drivers/media/platform/soc_camera/mx2_camera.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/media/platform/soc_camera/mx2_camera.c b/drivers/media/platform/soc_camera/mx2_camera.c
index f36b362aff69..9a55f4c4c7f4 100644
--- a/drivers/media/platform/soc_camera/mx2_camera.c
+++ b/drivers/media/platform/soc_camera/mx2_camera.c
@@ -864,8 +864,10 @@ static int mx2_start_streaming(struct vb2_queue *q, unsigned int count)
bytesperline = soc_mbus_bytes_per_line(icd->user_width,
icd->current_fmt->host_fmt);
- if (bytesperline < 0)
+ if (bytesperline < 0) {
+ spin_unlock_irqrestore(&pcdev->lock, flags);
return bytesperline;
+ }
/*
* I didn't manage to properly enable/disable the prp
@@ -878,8 +880,10 @@ static int mx2_start_streaming(struct vb2_queue *q, unsigned int count)
pcdev->discard_buffer = dma_alloc_coherent(ici->v4l2_dev.dev,
pcdev->discard_size, &pcdev->discard_buffer_dma,
GFP_KERNEL);
- if (!pcdev->discard_buffer)
+ if (!pcdev->discard_buffer) {
+ spin_unlock_irqrestore(&pcdev->lock, flags);
return -ENOMEM;
+ }
pcdev->buf_discard[0].discard = true;
list_add_tail(&pcdev->buf_discard[0].queue,