diff options
author | Julia Lawall <julia@diku.dk> | 2011-08-21 07:18:45 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-08-22 18:34:37 -0400 |
commit | 0bb98ba2b045e53b4724f34509455b7653c329d3 (patch) | |
tree | 1349e4b612c47fc2bced520f673912391a03ba30 /sound/soc/mxs | |
parent | bbe8ff5e25afd4d06c8a8bad009aca5f0d0c22ef (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.c | 5 |
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); |