]> git.karo-electronics.de Git - linux-beck.git/commitdiff
ASoC: core: tidyup snd_soc_register_codec() fail case
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Mon, 25 Feb 2013 08:40:09 +0000 (00:40 -0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 4 Mar 2013 03:07:43 +0000 (11:07 +0800)
kfree() on snd_soc_register_codec() was summarized to one place.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/soc-core.c

index b7e84a7cd9ee70451e453f9ef8febb23f3ad05ab..a872be1ee44d569445a6d0da4c96d2312db2183c 100644 (file)
@@ -4022,8 +4022,8 @@ int snd_soc_register_codec(struct device *dev,
        /* create CODEC component name */
        codec->name = fmt_single_name(dev, &codec->id);
        if (codec->name == NULL) {
-               kfree(codec);
-               return -ENOMEM;
+               ret = -ENOMEM;
+               goto fail_codec;
        }
 
        if (codec_drv->compress_type)
@@ -4062,7 +4062,7 @@ int snd_soc_register_codec(struct device *dev,
                                                      reg_size, GFP_KERNEL);
                        if (!codec->reg_def_copy) {
                                ret = -ENOMEM;
-                               goto fail;
+                               goto fail_codec_name;
                        }
                }
        }
@@ -4096,8 +4096,9 @@ int snd_soc_register_codec(struct device *dev,
        dev_dbg(codec->dev, "ASoC: Registered codec '%s'\n", codec->name);
        return 0;
 
-fail:
+fail_codec_name:
        kfree(codec->name);
+fail_codec:
        kfree(codec);
        return ret;
 }