ASoC: zx296702-i2s: Fix resource leak when unload module
authorAxel Lin <axel.lin@ingics.com>
Sat, 29 Aug 2015 15:09:30 +0000 (23:09 +0800)
committerMark Brown <broonie@kernel.org>
Sun, 30 Aug 2015 14:47:54 +0000 (15:47 +0100)
Use devm_* API to fix leaks in current code.
1. Use devm_kzalloc to fix memory leak for zx_i2s when unload the module.
2. Use devm_snd_soc_register_component to ensure component is unregistered
   when unload the module.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Reviewed-by: Jun Nie <jun.nie@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/zte/zx296702-i2s.c

index 98d96e1..f4b681d 100644 (file)
@@ -380,7 +380,7 @@ static int zx_i2s_probe(struct platform_device *pdev)
        struct zx_i2s_info *zx_i2s;
        int ret;
 
-       zx_i2s =  kzalloc(sizeof(*zx_i2s), GFP_KERNEL);
+       zx_i2s = devm_kzalloc(&pdev->dev, sizeof(*zx_i2s), GFP_KERNEL);
        if (!zx_i2s)
                return -ENOMEM;
 
@@ -401,8 +401,8 @@ static int zx_i2s_probe(struct platform_device *pdev)
        writel_relaxed(0, zx_i2s->reg_base + ZX_I2S_FIFO_CTRL);
        platform_set_drvdata(pdev, zx_i2s);
 
-       ret = snd_soc_register_component(&pdev->dev, &zx_i2s_component,
-                                        &zx_i2s_dai, 1);
+       ret = devm_snd_soc_register_component(&pdev->dev, &zx_i2s_component,
+                                             &zx_i2s_dai, 1);
        if (ret) {
                dev_err(&pdev->dev, "Register DAI failed: %d\n", ret);
                return ret;