2012-10-21 11:58:32

by Wei Yongjun

[permalink] [raw]
Subject: [PATCH] dmaengine: imx-dma: fix missing unlock on error in imxdma_xfer_desc()

From: Wei Yongjun <[email protected]>

Add the missing unlock on the error handling path in function
imxdma_xfer_desc().

Signed-off-by: Wei Yongjun <[email protected]>
---
drivers/dma/imx-dma.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c
index f11b5b2..7d9554c 100644
--- a/drivers/dma/imx-dma.c
+++ b/drivers/dma/imx-dma.c
@@ -474,8 +474,10 @@ static int imxdma_xfer_desc(struct imxdma_desc *d)
slot = i;
break;
}
- if (slot < 0)
+ if (slot < 0) {
+ spin_unlock_irqrestore(&imxdma->lock, flags);
return -EBUSY;
+ }

imxdma->slots_2d[slot].xsr = d->x;
imxdma->slots_2d[slot].ysr = d->y;


2012-10-24 03:38:47

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH] dmaengine: imx-dma: fix missing unlock on error in imxdma_xfer_desc()

On Sun, 2012-10-21 at 19:58 +0800, Wei Yongjun wrote:
> From: Wei Yongjun <[email protected]>
>
> Add the missing unlock on the error handling path in function
> imxdma_xfer_desc().
>
> Signed-off-by: Wei Yongjun <[email protected]>
> ---
> drivers/dma/imx-dma.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c
> index f11b5b2..7d9554c 100644
> --- a/drivers/dma/imx-dma.c
> +++ b/drivers/dma/imx-dma.c
> @@ -474,8 +474,10 @@ static int imxdma_xfer_desc(struct imxdma_desc *d)
> slot = i;
> break;
> }
> - if (slot < 0)
> + if (slot < 0) {
> + spin_unlock_irqrestore(&imxdma->lock, flags);
> return -EBUSY;
> + }
>
> imxdma->slots_2d[slot].xsr = d->x;
> imxdma->slots_2d[slot].ysr = d->y;
>
>
> --
Thanks applied

--
Vinod Koul
Intel Corp.