aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/mxs
diff options
context:
space:
mode:
authorJulia Lawall <julia@diku.dk>2011-08-21 07:18:45 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-08-22 18:34:37 -0400
commit0bb98ba2b045e53b4724f34509455b7653c329d3 (patch)
tree1349e4b612c47fc2bced520f673912391a03ba30 /sound/soc/mxs
parentbbe8ff5e25afd4d06c8a8bad009aca5f0d0c22ef (diff)
sound/soc/mxs/mxs-saif.c: add missing kfree
Move the test on pdev->id before the kzalloc to avoid requiring kfree when the test fails. This fix was suggested by Wolfram Sang. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ identifier x; expression E1!=0,E2,E3,E4; statement S; iterator I; @@ ( if (...) { ... when != kfree(x) when != x = E3 when != E3 = x * return ...; } ... when != x = E2 when != I(...,x,...) S if (...) { ... when != x = E4 kfree(x); ... return ...; } ) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Acked-by: Dong Aisheng <b29396@freescale.com> Reviewed-by: Wolfram Sang <w.sang@pengutronix.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/mxs')
-rw-r--r--sound/soc/mxs/mxs-saif.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sound/soc/mxs/mxs-saif.c b/sound/soc/mxs/mxs-saif.c
index 530017f7d14a..af5734f6dab7 100644
--- a/sound/soc/mxs/mxs-saif.c
+++ b/sound/soc/mxs/mxs-saif.c
@@ -521,12 +521,13 @@ static int mxs_saif_probe(struct platform_device *pdev)
521 struct mxs_saif *saif; 521 struct mxs_saif *saif;
522 int ret = 0; 522 int ret = 0;
523 523
524 if (pdev->id >= ARRAY_SIZE(mxs_saif))
525 return -EINVAL;
526
524 saif = kzalloc(sizeof(*saif), GFP_KERNEL); 527 saif = kzalloc(sizeof(*saif), GFP_KERNEL);
525 if (!saif) 528 if (!saif)
526 return -ENOMEM; 529 return -ENOMEM;
527 530
528 if (pdev->id >= ARRAY_SIZE(mxs_saif))
529 return -EINVAL;
530 mxs_saif[pdev->id] = saif; 531 mxs_saif[pdev->id] = saif;
531 532
532 saif->clk = clk_get(&pdev->dev, NULL); 533 saif->clk = clk_get(&pdev->dev, NULL);