ALSA: ac97c: Fix an error handling path in 'atmel_ac97c_probe()'
authorChristophe Jaillet <christophe.jaillet@wanadoo.fr>
Thu, 31 Aug 2017 04:40:42 +0000 (06:40 +0200)
committerMark Brown <broonie@kernel.org>
Thu, 31 Aug 2017 10:52:29 +0000 (11:52 +0100)
If 'clk_prepare_enable()' fails, we must release some resources before
returning. Add a new label in the existing error handling path and 'goto'
there.

Fixes: 260ea95cc027 ("ASoC: atmel: ac97c: Handle return value of clk_prepare_enable.")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/atmel/ac97c.c

index 52b0522fda2084463905a13cbc86eabf27f6a479..d78405329cebe06614f38a37c82a431019256f50 100644 (file)
@@ -785,7 +785,7 @@ static int atmel_ac97c_probe(struct platform_device *pdev)
        }
        retval = clk_prepare_enable(pclk);
        if (retval)
-               return retval;
+               goto err_prepare_enable;
 
        retval = snd_card_new(&pdev->dev, SNDRV_DEFAULT_IDX1,
                              SNDRV_DEFAULT_STR1, THIS_MODULE,
@@ -881,6 +881,7 @@ err_request_irq:
        snd_card_free(card);
 err_snd_card_new:
        clk_disable_unprepare(pclk);
+err_prepare_enable:
        clk_put(pclk);
        return retval;
 }