ASoC: rsnd: DT node clean up by using the of_node_put()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Fri, 23 May 2014 06:24:59 +0000 (23:24 -0700)
committerMark Brown <broonie@linaro.org>
Mon, 26 May 2014 13:34:54 +0000 (14:34 +0100)
Driver needs to call of_node_put() after of_get_chile_by_name()

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/sh/rcar/src.c
sound/soc/sh/rcar/ssi.c

index 7da87cde0bc3278524120b539fe3a8e22f2fc22e..61009c44ed904edea4c305f8c0d55bb97cfe8c8d 100644 (file)
@@ -598,18 +598,21 @@ static void rsnd_of_parse_src(struct platform_device *pdev,
 
        nr = of_get_child_count(src_node);
        if (!nr)
-               return;
+               goto rsnd_of_parse_src_end;
 
        src_info = devm_kzalloc(dev,
                                sizeof(struct rsnd_src_platform_info) * nr,
                                GFP_KERNEL);
        if (!src_info) {
                dev_err(dev, "src info allocation error\n");
-               return;
+               goto rsnd_of_parse_src_end;
        }
 
        info->src_info          = src_info;
        info->src_info_nr       = nr;
+
+rsnd_of_parse_src_end:
+       of_node_put(src_node);
 }
 
 int rsnd_src_probe(struct platform_device *pdev,
index 4b13edb26c4aef9b59fd9eee3b60f171a681d0c8..ea8d4e7a7986f947605b67a9ebd0eaae6472b2e6 100644 (file)
@@ -554,14 +554,14 @@ static void rsnd_of_parse_ssi(struct platform_device *pdev,
 
        nr = of_get_child_count(node);
        if (!nr)
-               return;
+               goto rsnd_of_parse_ssi_end;
 
        ssi_info = devm_kzalloc(dev,
                                sizeof(struct rsnd_ssi_platform_info) * nr,
                                GFP_KERNEL);
        if (!ssi_info) {
                dev_err(dev, "ssi info allocation error\n");
-               return;
+               goto rsnd_of_parse_ssi_end;
        }
 
        info->ssi_info          = ssi_info;
@@ -584,6 +584,9 @@ static void rsnd_of_parse_ssi(struct platform_device *pdev,
                 */
                ssi_info->pio_irq = irq_of_parse_and_map(np, 0);
        }
+
+rsnd_of_parse_ssi_end:
+       of_node_put(node);
 }
 
 int rsnd_ssi_probe(struct platform_device *pdev,