ASoC: samsung: i2s: Fix error handling path in i2s_set_sysclk()

commit 6431a7e36652517df82855ee79c8240001812a55 upstream.

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 <christophe.jaillet@wanadoo.fr>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Christophe Jaillet 2017-09-03 14:29:02 +02:00 committed by Greg Kroah-Hartman
parent 5e8bf9f23f
commit 00ac982d7a

View File

@ -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 */