diff mbox series

intel_idle: Fix uninitialized variable bug

Message ID 20200624131921.GB9972@mwanda (mailing list archive)
State Not Applicable, archived
Headers show
Series intel_idle: Fix uninitialized variable bug | expand

Commit Message

Dan Carpenter June 24, 2020, 1:19 p.m. UTC
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(-)

Comments

Rafael J. Wysocki June 24, 2020, 1:41 p.m. UTC | #1
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();
>
>         /*
> --
Dan Carpenter June 25, 2020, 9:04 a.m. UTC | #2
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
Rafael J. Wysocki June 25, 2020, 10:37 a.m. UTC | #3
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 mbox series

Patch

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();
 
 	/*