From: Julia Lawall julia@diku.dk
Add a new variable for storing resources accessed subsequent to the one accessed using request_mem_region, so the one accessed using request_mem_region can be released if needed.
The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/)
// <smpl> @r@ expression E, E1; identifier f; statement S1,S2,S3; @@
if (E == NULL) { ... when != if (E == NULL || ...) S1 else S2 when != E = E1 *E->f ... when any return ...; } else S3 // </smpl>
Signed-off-by: Julia Lawall julia@diku.dk
--- sound/soc/mxs/mxs-saif.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/sound/soc/mxs/mxs-saif.c b/sound/soc/mxs/mxs-saif.c index 401944c..e12ff78 100644 --- a/sound/soc/mxs/mxs-saif.c +++ b/sound/soc/mxs/mxs-saif.c @@ -617,7 +617,7 @@ static irqreturn_t mxs_saif_irq(int irq, void *dev_id)
static int mxs_saif_probe(struct platform_device *pdev) { - struct resource *res; + struct resource *res, *res1; struct mxs_saif *saif; struct mxs_saif_platform_data *pdata; int ret = 0; @@ -676,14 +676,14 @@ static int mxs_saif_probe(struct platform_device *pdev) goto failed_ioremap; }
- res = platform_get_resource(pdev, IORESOURCE_DMA, 0); - if (!res) { + res1 = platform_get_resource(pdev, IORESOURCE_DMA, 0); + if (!res1) { ret = -ENODEV; dev_err(&pdev->dev, "failed to get dma resource: %d\n", ret); goto failed_ioremap; } - saif->dma_param.chan_num = res->start; + saif->dma_param.chan_num = res1->start;
saif->irq = platform_get_irq(pdev, 0); if (saif->irq < 0) {