From: Christophe Jaillet Date: Sun, 3 Sep 2017 12:29:02 +0000 (+0200) Subject: ASoC: samsung: i2s: Fix error handling path in i2s_set_sysclk() X-Git-Tag: v4.19~1622^2~4^2~6^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6431a7e36652517df82855ee79c8240001812a55;p=platform%2Fkernel%2Flinux-rpi.git ASoC: samsung: i2s: Fix error handling path in i2s_set_sysclk() If 'clk_prepare_enable()' fails, we must 'put' the corresponding clock. Othewise, there is a resource leak. Fixes: f5c97c7b0438 ("ASoC: samsung: i2s: Handle return value of clk_prepare_enable.") Signed-off-by: Christophe JAILLET Signed-off-by: Mark Brown --- diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c index 10a4da0..d7e7f4244 100644 --- a/sound/soc/samsung/i2s.c +++ b/sound/soc/samsung/i2s.c @@ -552,8 +552,11 @@ static int i2s_set_sysclk(struct snd_soc_dai *dai, } ret = clk_prepare_enable(i2s->op_clk); - if (ret) + if (ret) { + clk_put(i2s->op_clk); + i2s->op_clk = NULL; goto err; + } i2s->rclk_srcrate = clk_get_rate(i2s->op_clk); /* Over-ride the other's */