diff mbox

clk: keystone: gate: fix clk_init_data initialization

Message ID 1391081821-13306-1-git-send-email-ivan.khoronzhuk@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ivan Khoronzhuk Jan. 30, 2014, 11:37 a.m. UTC
In clk_register_psc() function clk_init_data struct is allocated
in the stack. All members of this struct should be initialized
before using otherwise it will contain garbage. So initialize flags
in this structure too.

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
---
 drivers/clk/keystone/gate.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Ivan Khoronzhuk Jan. 30, 2014, 1:49 p.m. UTC | #1
Yes. As result the clk->flag field contains garbage. In my case it leads
that flag CLK_IGNORE_UNUSED is set for most of clocks.  As result a bunch
of unused clocks cannot be disabled.

On 01/30/2014 03:26 PM, Shilimkar, Santosh wrote:
> Can u capture the issue withiout this fix?
>
> Sent from my Android phone using TouchDown (www.nitrodesk.com)
>
> -----Original Message-----
> *From:* Khoronzhuk, Ivan [ivan.khoronzhuk@ti.com]
> *Received:* Thursday, 30 Jan 2014, 6:37am
> *To:* Shilimkar, Santosh [santosh.shilimkar@ti.com]
> *CC:* mturquette@linaro.org [mturquette@linaro.org];
> linux-arm-kernel@lists.infradead.org [linux-arm-kernel@lists.infradead.org];
> linux-kernel@vger.kernel.org [linux-kernel@vger.kernel.org]; Khoronzhuk, Ivan
> [ivan.khoronzhuk@ti.com]
> *Subject:* [PATCH] clk: keystone: gate: fix clk_init_data initialization
>
> In clk_register_psc() function clk_init_data struct is allocated
> in the stack. All members of this struct should be initialized
> before using otherwise it will contain garbage. So initialize flags
> in this structure too.
>
> Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
> ---
>    drivers/clk/keystone/gate.c | 1 +
>    1 file changed, 1 insertion(+)
>
> diff --git a/drivers/clk/keystone/gate.c b/drivers/clk/keystone/gate.c
> index 17a5983..86f1e36 100644
> --- a/drivers/clk/keystone/gate.c
> +++ b/drivers/clk/keystone/gate.c
> @@ -179,6 +179,7 @@ static struct clk *clk_register_psc(struct device *dev,
>
>            init.name = name;
>            init.ops = &clk_psc_ops;
> +       init.flags = 0;
>            init.parent_names = (parent_name ? &parent_name : NULL);
>            init.num_parents = (parent_name ? 1 : 0);
>
> -- 
> 1.8.3.2
>
Santosh Shilimkar Jan. 30, 2014, 2:32 p.m. UTC | #2
On Thursday 30 January 2014 08:49 AM, Ivan Khoronzhuk wrote:
> Yes. As result the clk->flag field contains garbage. In my case it leads
> that flag CLK_IGNORE_UNUSED is set for most of clocks.  As result a bunch
> of unused clocks cannot be disabled.
> 
Can you please update the change log with above information.

> On 01/30/2014 03:26 PM, Shilimkar, Santosh wrote:
>> Can u capture the issue withiout this fix?
>>
>> Sent from my Android phone using TouchDown (www.nitrodesk.com)
>>
>> -----Original Message-----
>> *From:* Khoronzhuk, Ivan [ivan.khoronzhuk@ti.com]
>> *Received:* Thursday, 30 Jan 2014, 6:37am
>> *To:* Shilimkar, Santosh [santosh.shilimkar@ti.com]
>> *CC:* mturquette@linaro.org [mturquette@linaro.org];
>> linux-arm-kernel@lists.infradead.org [linux-arm-kernel@lists.infradead.org];
>> linux-kernel@vger.kernel.org [linux-kernel@vger.kernel.org]; Khoronzhuk, Ivan
>> [ivan.khoronzhuk@ti.com]
>> *Subject:* [PATCH] clk: keystone: gate: fix clk_init_data initialization
>>
>> In clk_register_psc() function clk_init_data struct is allocated
>> in the stack. All members of this struct should be initialized
>> before using otherwise it will contain garbage. So initialize flags
>> in this structure too.
>>
>> Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
>> ---
>>    drivers/clk/keystone/gate.c | 1 +
>>    1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/clk/keystone/gate.c b/drivers/clk/keystone/gate.c
>> index 17a5983..86f1e36 100644
>> --- a/drivers/clk/keystone/gate.c
>> +++ b/drivers/clk/keystone/gate.c
>> @@ -179,6 +179,7 @@ static struct clk *clk_register_psc(struct device *dev,
>>
>>            init.name = name;
>>            init.ops = &clk_psc_ops;
>> +       init.flags = 0;
>>            init.parent_names = (parent_name ? &parent_name : NULL);
>>            init.num_parents = (parent_name ? 1 : 0);
>>
>> -- 
>> 1.8.3.2
>>
>
Ivan Khoronzhuk Jan. 30, 2014, 4:56 p.m. UTC | #3
Ok

On 01/30/2014 04:32 PM, Santosh Shilimkar wrote:
> On Thursday 30 January 2014 08:49 AM, Ivan Khoronzhuk wrote:
>> Yes. As result the clk->flag field contains garbage. In my case it leads
>> that flag CLK_IGNORE_UNUSED is set for most of clocks.  As result a bunch
>> of unused clocks cannot be disabled.
>>
> Can you please update the change log with above information.
>
>> On 01/30/2014 03:26 PM, Shilimkar, Santosh wrote:
>>> Can u capture the issue withiout this fix?
>>>
>>> Sent from my Android phone using TouchDown (www.nitrodesk.com)
>>>
>>> -----Original Message-----
>>> *From:* Khoronzhuk, Ivan [ivan.khoronzhuk@ti.com]
>>> *Received:* Thursday, 30 Jan 2014, 6:37am
>>> *To:* Shilimkar, Santosh [santosh.shilimkar@ti.com]
>>> *CC:* mturquette@linaro.org [mturquette@linaro.org];
>>> linux-arm-kernel@lists.infradead.org [linux-arm-kernel@lists.infradead.org];
>>> linux-kernel@vger.kernel.org [linux-kernel@vger.kernel.org]; Khoronzhuk, Ivan
>>> [ivan.khoronzhuk@ti.com]
>>> *Subject:* [PATCH] clk: keystone: gate: fix clk_init_data initialization
>>>
>>> In clk_register_psc() function clk_init_data struct is allocated
>>> in the stack. All members of this struct should be initialized
>>> before using otherwise it will contain garbage. So initialize flags
>>> in this structure too.
>>>
>>> Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
>>> ---
>>>     drivers/clk/keystone/gate.c | 1 +
>>>     1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/clk/keystone/gate.c b/drivers/clk/keystone/gate.c
>>> index 17a5983..86f1e36 100644
>>> --- a/drivers/clk/keystone/gate.c
>>> +++ b/drivers/clk/keystone/gate.c
>>> @@ -179,6 +179,7 @@ static struct clk *clk_register_psc(struct device *dev,
>>>
>>>             init.name = name;
>>>             init.ops = &clk_psc_ops;
>>> +       init.flags = 0;
>>>             init.parent_names = (parent_name ? &parent_name : NULL);
>>>             init.num_parents = (parent_name ? 1 : 0);
>>>
>>> -- 
>>> 1.8.3.2
>>>
diff mbox

Patch

diff --git a/drivers/clk/keystone/gate.c b/drivers/clk/keystone/gate.c
index 17a5983..86f1e36 100644
--- a/drivers/clk/keystone/gate.c
+++ b/drivers/clk/keystone/gate.c
@@ -179,6 +179,7 @@  static struct clk *clk_register_psc(struct device *dev,
 
 	init.name = name;
 	init.ops = &clk_psc_ops;
+	init.flags = 0;
 	init.parent_names = (parent_name ? &parent_name : NULL);
 	init.num_parents = (parent_name ? 1 : 0);