Re: [PATCH] x86/mce: Make timer handling more robust

From: Borislav Petkov
Date: Tue Jan 31 2017 - 13:38:25 EST


On Tue, Jan 31, 2017 at 02:33:29PM +0100, Thomas Gleixner wrote:
> On Tue, 31 Jan 2017, Thomas Gleixner wrote:
> > +static void mce_start_timer(struct timer_list *t)
> > {
> > unsigned long iv = check_interval * HZ;
> >
> > if (mca_cfg.ignore_ce || !iv)
> > return;
> >
> > - per_cpu(mce_next_interval, cpu) = iv;
> > -
> > - t->expires = round_jiffies(jiffies + iv);
> > - add_timer_on(t, cpu);
> > + this_cpu_write(mce_next_interval, iv);
> > + __start_timer(t, jiffies + iv);
>
> Bah. That's wrong. Delta patch below:
>
> --- a/arch/x86/kernel/cpu/mcheck/mce.c
> +++ b/arch/x86/kernel/cpu/mcheck/mce.c
> @@ -1782,7 +1782,7 @@ static void mce_start_timer(struct timer
> return;
>
> this_cpu_write(mce_next_interval, iv);
> - __start_timer(t, jiffies + iv);
> + __start_timer(t, iv);
> }
>
> static void __mcheck_cpu_setup_timer(void)

With that hunk merged in:

Reviewed-by: Borislav Petkov <bp@xxxxxxx>
Tested-by: Borislav Petkov <bp@xxxxxxx>

Thanks!

--
Regards/Gruss,
Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.