On 31/08/2017 at 12:04:03 +0300, Andy Shevchenko wrote:
On Thu, 2017-08-31 at 10:23 +0200, Julia Lawall wrote:
On Thu, 31 Aug 2017, Alexandre Belloni wrote:
On 31/08/2017 at 06:40:42 +0200, Christophe JAILLET wrote:
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
And here is the fallout of the stupid, brainless "fixing" of issues reported by static analysis tools.
This clk_prepare_enable will never fail. If it was going to fail, the platform would never boot to a point were it is able to execute that code. It is really annoying to have so much churn for absolutely 0 benefit.
Would it be more productive to put the code back like it was before, ie no return value and no check, and add a comment to the definition of clk_prepare_enable indicating that there are many case where the call cannot fail? Grepping through the code suggests that it is about 50- 50 on checking the return value or not doing so, which might suggest that checking the value is often not required.
I didn't look into the code, though speculating it might be the case when CLK framework is not enabled, though many drivers are dependent to it, so, it would never fail in such cases.
It is not the case, it would return 0. Anyway, this will not happen because that driver depends on ARCH_AT91 which selects COMMON_CLK_AT91 which selects COMMON_CLK.
Nevertheless there might be other cases for CLK API to fail.
The only case would be for a clock to be enabled without being prepared and this will never happen because clk_prepare_enable is used.
This call will just never fail.