From patchwork Sat Mar 21 23:21:21 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Jarzmik X-Patchwork-Id: 6065651 Return-Path: X-Original-To: patchwork-linux-media@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 871829F399 for ; Sat, 21 Mar 2015 23:21:58 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id C65BE2028D for ; Sat, 21 Mar 2015 23:21:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E01D0202AE for ; Sat, 21 Mar 2015 23:21:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751463AbbCUXVg (ORCPT ); Sat, 21 Mar 2015 19:21:36 -0400 Received: from smtp05.smtpout.orange.fr ([80.12.242.127]:19101 "EHLO smtp.smtpout.orange.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751314AbbCUXVf (ORCPT ); Sat, 21 Mar 2015 19:21:35 -0400 Received: from beldin.home ([109.222.244.195]) by mwinf5d28 with ME id 6PMW1q0064DgPa503PMZJo; Sun, 22 Mar 2015 00:21:34 +0100 X-ME-Helo: beldin.home X-ME-Date: Sun, 22 Mar 2015 00:21:34 +0100 X-ME-IP: 109.222.244.195 From: Robert Jarzmik To: Guennadi Liakhovetski , Mauro Carvalho Chehab , Jiri Kosina Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Daniel Mack , Robert Jarzmik , Robert Jarzmik Subject: [PATCH 1/4] media: pxa_camera: fix the buffer free path Date: Sun, 22 Mar 2015 00:21:21 +0100 Message-Id: <1426980085-12281-2-git-send-email-robert.jarzmik@free.fr> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1426980085-12281-1-git-send-email-robert.jarzmik@free.fr> References: <1426980085-12281-1-git-send-email-robert.jarzmik@free.fr> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Robert Jarzmik Fix the error path where the video buffer wasn't allocated nor mapped. In this case, in the driver free path don't try to unmap memory which was not mapped in the first place. Signed-off-by: Robert Jarzmik --- drivers/media/platform/soc_camera/pxa_camera.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/soc_camera/pxa_camera.c b/drivers/media/platform/soc_camera/pxa_camera.c index 8d6e343..3ca33f0 100644 --- a/drivers/media/platform/soc_camera/pxa_camera.c +++ b/drivers/media/platform/soc_camera/pxa_camera.c @@ -272,8 +272,8 @@ static void free_buffer(struct videobuf_queue *vq, struct pxa_buffer *buf) * longer in STATE_QUEUED or STATE_ACTIVE */ videobuf_waiton(vq, &buf->vb, 0, 0); - videobuf_dma_unmap(vq->dev, dma); - videobuf_dma_free(dma); + if (buf->vb.state == VIDEOBUF_NEEDS_INIT) + return; for (i = 0; i < ARRAY_SIZE(buf->dmas); i++) { if (buf->dmas[i].sg_cpu) @@ -283,6 +283,8 @@ static void free_buffer(struct videobuf_queue *vq, struct pxa_buffer *buf) buf->dmas[i].sg_dma); buf->dmas[i].sg_cpu = NULL; } + videobuf_dma_unmap(vq->dev, dma); + videobuf_dma_free(dma); buf->vb.state = VIDEOBUF_NEEDS_INIT; }