drivers/cpufreq/spear-cpufreq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
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;
np = of_cpu_device_node_get(0);
if (!np) {
--
2.43.0
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;
?
--
viresh
On Mon, Aug 5, 2024 at 10:49 PM Viresh Kumar <viresh.kumar@linaro.org> wrote:
>
> 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;
>
> ?
Sigh. Yes.
Rob
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;
--
viresh
© 2016 - 2025 Red Hat, Inc.