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

Vladimir Zapolskiy vzapolskiy at gmail.com
Thu Mar 18 09:21:29 EDT 2010


Hi Uwe

2010/3/18 Uwe Kleine-König <u.kleine-koenig at pengutronix.de>:
> 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.
>

I see, thank you. But why don't you use BUG() here, if this testifies
to a higher level bug and after such a call the whole kernel can be
unmaintainable on run-time?

> Best regards
> Uwe
>

Best wishes,
Vladimir



More information about the linux-arm-kernel mailing list