Message ID | 20240805202042.3229190-1-robh@kernel.org |
---|---|
State | New |
Headers | show |
Series | cpufreq: spear: Fix uninitialized variable "i" | expand |
On 05-08-24, 14:20, Rob Herring (Arm) wrote: > The refactoring in commit dca2ef2b7d91 ("cpufreq: spear: Use > of_property_for_each_u32() instead of open coding") left "i" > uninitialized. Initialize it to 0. > > Note that gcc doesn't detect this, only clang does. > > Fixes: dca2ef2b7d91 ("cpufreq: spear: Use of_property_for_each_u32() instead of open coding") > Reported-by: kernel test robot <lkp@intel.com> > Closes: https://lore.kernel.org/oe-kbuild-all/202408030418.gnJDcCpm-lkp@intel.com/ > Signed-off-by: Rob Herring (Arm) <robh@kernel.org> > --- > drivers/cpufreq/spear-cpufreq.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/cpufreq/spear-cpufreq.c b/drivers/cpufreq/spear-cpufreq.c > index 4d28147c23f1..f8c16699a68d 100644 > --- a/drivers/cpufreq/spear-cpufreq.c > +++ b/drivers/cpufreq/spear-cpufreq.c > @@ -173,7 +173,7 @@ static int spear_cpufreq_probe(struct platform_device *pdev) > struct device_node *np; > struct cpufreq_frequency_table *freq_tbl; > u32 val; > - int cnt, i, ret; > + int cnt, i = 0, ret; We don't increment 'i' anymore, don't we need an i++ in: freq_tbl[i].frequency = val; ?
On 06-08-24, 10:08, Rob Herring wrote: > On Mon, Aug 5, 2024 at 10:49 PM Viresh Kumar <viresh.kumar@linaro.org> wrote: > > We don't increment 'i' anymore, don't we need an i++ in: > > > > freq_tbl[i].frequency = val; > > > > ? > > Sigh. Yes. Fixed the original commit with this, hope this doesn't add any new bugs: diff --git a/drivers/cpufreq/spear-cpufreq.c b/drivers/cpufreq/spear-cpufreq.c index 777f7f5b3671..d8ab5b01d46d 100644 --- a/drivers/cpufreq/spear-cpufreq.c +++ b/drivers/cpufreq/spear-cpufreq.c @@ -173,7 +173,7 @@ static int spear_cpufreq_probe(struct platform_device *pdev) struct device_node *np; struct cpufreq_frequency_table *freq_tbl; u32 val; - int cnt, i, ret; + int cnt, ret, i = 0; np = of_cpu_device_node_get(0); if (!np) { @@ -199,7 +199,7 @@ static int spear_cpufreq_probe(struct platform_device *pdev) } of_property_for_each_u32(np, "cpufreq_tbl", val) - freq_tbl[i].frequency = val; + freq_tbl[i++].frequency = val; freq_tbl[cnt].frequency = CPUFREQ_TABLE_END;
diff --git a/drivers/cpufreq/spear-cpufreq.c b/drivers/cpufreq/spear-cpufreq.c index 4d28147c23f1..f8c16699a68d 100644 --- a/drivers/cpufreq/spear-cpufreq.c +++ b/drivers/cpufreq/spear-cpufreq.c @@ -173,7 +173,7 @@ static int spear_cpufreq_probe(struct platform_device *pdev) struct device_node *np; struct cpufreq_frequency_table *freq_tbl; u32 val; - int cnt, i, ret; + int cnt, i = 0, ret; np = of_cpu_device_node_get(0); if (!np) {
The refactoring in commit dca2ef2b7d91 ("cpufreq: spear: Use of_property_for_each_u32() instead of open coding") left "i" uninitialized. Initialize it to 0. Note that gcc doesn't detect this, only clang does. Fixes: dca2ef2b7d91 ("cpufreq: spear: Use of_property_for_each_u32() instead of open coding") Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202408030418.gnJDcCpm-lkp@intel.com/ Signed-off-by: Rob Herring (Arm) <robh@kernel.org> --- drivers/cpufreq/spear-cpufreq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)