diff mbox

clk: __clk_set_parent: set uninitialized variable

Message ID 1341177539-27716-1-git-send-email-mkl@pengutronix.de (mailing list archive)
State New, archived
Headers show

Commit Message

Marc Kleine-Budde July 1, 2012, 9:18 p.m. UTC
This patch fixes the following warning:

    drivers/clk/clk.c: In function '__clk_set_parent':
    drivers/clk/clk.c:1083:5: warning: 'i' may be used uninitialized in this function [-Wuninitialized]

which has been introduced with commit:

    commit 7975059db572eb47f0fb272a62afeae272a4b209
    Author: Rajendra Nayak <rnayak@ti.com>
    Date:   Wed Jun 6 14:41:31 2012 +0530

        clk: Allow late cache allocation for clk->parents

This patch applies to linux-3.5-rc5

Cc: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
Hello,

please check if this is the correct fix. The original patch has been
schedules for stable, this fix may be a candicate, too.

regards, Marc


 drivers/clk/clk.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Rajendra Nayak July 2, 2012, 5:57 a.m. UTC | #1
On Monday 02 July 2012 02:48 AM, Marc Kleine-Budde wrote:
> This patch fixes the following warning:
>
>      drivers/clk/clk.c: In function '__clk_set_parent':
>      drivers/clk/clk.c:1083:5: warning: 'i' may be used uninitialized in this function [-Wuninitialized]
>
> which has been introduced with commit:

hmm, are you sure about that? The below commit neither introduces the
variable 'i', nor seem to change the way the variable is used in the
function.

>
>      commit 7975059db572eb47f0fb272a62afeae272a4b209
>      Author: Rajendra Nayak<rnayak@ti.com>
>      Date:   Wed Jun 6 14:41:31 2012 +0530
>
>          clk: Allow late cache allocation for clk->parents
>
> This patch applies to linux-3.5-rc5
>
> Cc: Rajendra Nayak<rnayak@ti.com>
> Signed-off-by: Marc Kleine-Budde<mkl@pengutronix.de>
> ---
> Hello,
>
> please check if this is the correct fix. The original patch has been
> schedules for stable, this fix may be a candicate, too.
>
> regards, Marc
>
>
>   drivers/clk/clk.c |    2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
> index dcbe056..60d1bb4 100644
> --- a/drivers/clk/clk.c
> +++ b/drivers/clk/clk.c
> @@ -1063,7 +1063,7 @@ static int __clk_set_parent(struct clk *clk, struct clk *parent)
>   	struct clk *old_parent;
>   	unsigned long flags;
>   	int ret = -EINVAL;
> -	u8 i;
> +	u8 i = 0;
>
>   	old_parent = clk->parent;
>
Uwe Kleine-König July 2, 2012, 6:47 a.m. UTC | #2
On Mon, Jul 02, 2012 at 11:27:13AM +0530, Rajendra Nayak wrote:
> On Monday 02 July 2012 02:48 AM, Marc Kleine-Budde wrote:
> >This patch fixes the following warning:
> >
> >     drivers/clk/clk.c: In function '__clk_set_parent':
> >     drivers/clk/clk.c:1083:5: warning: 'i' may be used uninitialized in this function [-Wuninitialized]
> >
> >which has been introduced with commit:
> 
> hmm, are you sure about that? The below commit neither introduces the
> variable 'i', nor seem to change the way the variable is used in the
> function.
It does. The following hunk:

-       for (i = 0; i < clk->num_parents; i++)
-               if (clk->parents[i] == parent)
-                       break;
+       if (clk->parents)
+               for (i = 0; i < clk->num_parents; i++)
+                       if (clk->parents[i] == parent)
+                               break;
+       else
+               clk->parents = kzalloc((sizeof(struct clk*) * clk->num_parents),
+                                                               GFP_KERNEL);

results in i being uninitialized if clk->parents is NULL. But I wonder
if for this case i should be set to clk->num_parents instead of 0?

Best regards
Uwe
Rajendra Nayak July 2, 2012, 7:24 a.m. UTC | #3
On Monday 02 July 2012 12:17 PM, Uwe Kleine-König wrote:
> On Mon, Jul 02, 2012 at 11:27:13AM +0530, Rajendra Nayak wrote:
>> On Monday 02 July 2012 02:48 AM, Marc Kleine-Budde wrote:
>>> This patch fixes the following warning:
>>>
>>>      drivers/clk/clk.c: In function '__clk_set_parent':
>>>      drivers/clk/clk.c:1083:5: warning: 'i' may be used uninitialized in this function [-Wuninitialized]
>>>
>>> which has been introduced with commit:
>>
>> hmm, are you sure about that? The below commit neither introduces the
>> variable 'i', nor seem to change the way the variable is used in the
>> function.
> It does. The following hunk:
>
> -       for (i = 0; i<  clk->num_parents; i++)
> -               if (clk->parents[i] == parent)
> -                       break;
> +       if (clk->parents)
> +               for (i = 0; i<  clk->num_parents; i++)
> +                       if (clk->parents[i] == parent)
> +                               break;
> +       else
> +               clk->parents = kzalloc((sizeof(struct clk*) * clk->num_parents),
> +                                                               GFP_KERNEL);
>
> results in i being uninitialized if clk->parents is NULL. But I wonder

ok, got it.

> if for this case i should be set to clk->num_parents instead of 0?

yes, that seems like the right thing to do.

>
> Best regards
> Uwe
>
diff mbox

Patch

diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index dcbe056..60d1bb4 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -1063,7 +1063,7 @@  static int __clk_set_parent(struct clk *clk, struct clk *parent)
 	struct clk *old_parent;
 	unsigned long flags;
 	int ret = -EINVAL;
-	u8 i;
+	u8 i = 0;
 
 	old_parent = clk->parent;