summaryrefslogtreecommitdiffstats
path: root/sound/soc/mxs
diff options
context:
space:
mode:
authorJulia Lawall <julia@diku.dk>2011-08-21 13:18:45 +0200
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-08-22 23:34:37 +0100
commit0bb98ba2b045e53b4724f34509455b7653c329d3 (patch)
tree1349e4b612c47fc2bced520f673912391a03ba30 /sound/soc/mxs
parentbbe8ff5e25afd4d06c8a8bad009aca5f0d0c22ef (diff)
downloadlinux-0bb98ba2b045e53b4724f34509455b7653c329d3.tar.bz2
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)
struct mxs_saif *saif;
int ret = 0;
+ if (pdev->id >= ARRAY_SIZE(mxs_saif))
+ return -EINVAL;
+
saif = kzalloc(sizeof(*saif), GFP_KERNEL);
if (!saif)
return -ENOMEM;
- if (pdev->id >= ARRAY_SIZE(mxs_saif))
- return -EINVAL;
mxs_saif[pdev->id] = saif;
saif->clk = clk_get(&pdev->dev, NULL);