Message ID | 20200624131921.GB9972@mwanda (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | intel_idle: Fix uninitialized variable bug | expand |
On Wed, Jun 24, 2020 at 3:19 PM Dan Carpenter <dan.carpenter@oracle.com> wrote: > > The "tick" variable isn't initialized if "lapic_timer_always_reliable" > is true. If lapic_timer_always_reliable is true, then static_cpu_has(X86_FEATURE_ARAT) must also be true AFAICS. So the lapic_timer_always_reliable check in there looks redundant. > Fixes: 40ab82e08d78 ("intel_idle: Simplify LAPIC timer reliability checks") > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> > --- > drivers/idle/intel_idle.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c > index aae53e650638..6c9152f303a6 100644 > --- a/drivers/idle/intel_idle.c > +++ b/drivers/idle/intel_idle.c > @@ -132,7 +132,7 @@ static __cpuidle int intel_idle(struct cpuidle_device *dev, > struct cpuidle_state *state = &drv->states[index]; > unsigned long eax = flg2MWAIT(state->flags); > unsigned long ecx = 1; /* break on interrupt flag */ > - bool tick; > + bool tick = false; > int cpu = smp_processor_id(); > > /* > --
On Wed, Jun 24, 2020 at 03:41:05PM +0200, Rafael J. Wysocki wrote: > On Wed, Jun 24, 2020 at 3:19 PM Dan Carpenter <dan.carpenter@oracle.com> wrote: > > > > The "tick" variable isn't initialized if "lapic_timer_always_reliable" > > is true. > > If lapic_timer_always_reliable is true, then > static_cpu_has(X86_FEATURE_ARAT) must also be true AFAICS. > > So the lapic_timer_always_reliable check in there looks redundant. Can the lapic_timer_always_reliable variable just be removed entirely and replaced with an static_cpu_has(X86_FEATURE_ARAT) check? regards, dan carpenter
On Thu, Jun 25, 2020 at 11:05 AM Dan Carpenter <dan.carpenter@oracle.com> wrote: > > On Wed, Jun 24, 2020 at 03:41:05PM +0200, Rafael J. Wysocki wrote: > > On Wed, Jun 24, 2020 at 3:19 PM Dan Carpenter <dan.carpenter@oracle.com> wrote: > > > > > > The "tick" variable isn't initialized if "lapic_timer_always_reliable" > > > is true. > > > > If lapic_timer_always_reliable is true, then > > static_cpu_has(X86_FEATURE_ARAT) must also be true AFAICS. > > > > So the lapic_timer_always_reliable check in there looks redundant. > > Can the lapic_timer_always_reliable variable just be removed entirely > and replaced with an static_cpu_has(X86_FEATURE_ARAT) check? Yes, it can. See https://patchwork.kernel.org/patch/11623309/ Thanks!
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c index aae53e650638..6c9152f303a6 100644 --- a/drivers/idle/intel_idle.c +++ b/drivers/idle/intel_idle.c @@ -132,7 +132,7 @@ static __cpuidle int intel_idle(struct cpuidle_device *dev, struct cpuidle_state *state = &drv->states[index]; unsigned long eax = flg2MWAIT(state->flags); unsigned long ecx = 1; /* break on interrupt flag */ - bool tick; + bool tick = false; int cpu = smp_processor_id(); /*
The "tick" variable isn't initialized if "lapic_timer_always_reliable" is true. Fixes: 40ab82e08d78 ("intel_idle: Simplify LAPIC timer reliability checks") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> --- drivers/idle/intel_idle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)