[PATCH 2/2 v2] [ARM] [IMX]: Fix clock use counter from underflow on multiple clk_disable().

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Thu Mar 18 04:30:04 EDT 2010


Hi Vladimir,

On Wed, Mar 17, 2010 at 02:03:31PM +0300, Vladimir Zapolskiy wrote:
> If clk_disable() is called for already disabled clock clk->usecount
> value is decremented anyway. This leads to a problem that sequent
> clk_enable() call doesn't enable the clock as expected.
> 
> Signed-off-by: Vladimir Zapolskiy <vzapolskiy at gmail.com>
> Cc: Sascha Hauer <s.hauer at pengutronix.de>
> Cc: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
> ---
>  arch/arm/plat-mxc/clock.c |    6 +++++-
>  1 files changed, 5 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/arm/plat-mxc/clock.c b/arch/arm/plat-mxc/clock.c
> index 2daec3c..3189275 100644
> --- a/arch/arm/plat-mxc/clock.c
> +++ b/arch/arm/plat-mxc/clock.c
> @@ -53,10 +53,14 @@ static void __clk_disable(struct clk *clk)
>  	if (clk == NULL || IS_ERR(clk))
>  		return;
>  
> +	if (!clk->usecount) {
> +		WARN(1, "Trying to disable a clock with 0 usecount\n");
> +		return;
> +	}
> +
The advantage of just using

	WARN(!clk->usecount, "Trying to disable a disabled clock\n");

is that the error isn't caught and so is more likely to be fixed :-)
I'n not a native English speaker, but I think "Trying to disable a clock
with 0 usecount" isn't a proper English sentence.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |



More information about the linux-arm-kernel mailing list