mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-11-18 04:35:11 +00:00
x86: mce: Split timer init
Split timer init function into the init and the start part, so the start part can replace the open coded version in CPU_DOWN_FAILED. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Chen Gong <gong.chen@linux.intel.com> Acked-by: Borislav Petkov <borislav.petkov@amd.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
parent
b5975917a3
commit
26c3c283c5
1 changed files with 17 additions and 16 deletions
|
|
@ -1557,21 +1557,26 @@ static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void mce_start_timer(unsigned int cpu, struct timer_list *t)
|
||||||
|
{
|
||||||
|
unsigned long iv = check_interval * HZ;
|
||||||
|
|
||||||
|
__this_cpu_write(mce_next_interval, iv);
|
||||||
|
|
||||||
|
if (mce_ignore_ce || !iv)
|
||||||
|
return;
|
||||||
|
|
||||||
|
t->expires = round_jiffies(jiffies + iv);
|
||||||
|
add_timer_on(t, smp_processor_id());
|
||||||
|
}
|
||||||
|
|
||||||
static void __mcheck_cpu_init_timer(void)
|
static void __mcheck_cpu_init_timer(void)
|
||||||
{
|
{
|
||||||
struct timer_list *t = &__get_cpu_var(mce_timer);
|
struct timer_list *t = &__get_cpu_var(mce_timer);
|
||||||
unsigned long iv = check_interval * HZ;
|
unsigned int cpu = smp_processor_id();
|
||||||
|
|
||||||
setup_timer(t, mce_timer_fn, smp_processor_id());
|
setup_timer(t, mce_timer_fn, cpu);
|
||||||
|
mce_start_timer(cpu, t);
|
||||||
if (mce_ignore_ce)
|
|
||||||
return;
|
|
||||||
|
|
||||||
__this_cpu_write(mce_next_interval, iv);
|
|
||||||
if (!iv)
|
|
||||||
return;
|
|
||||||
t->expires = round_jiffies(jiffies + iv);
|
|
||||||
add_timer_on(t, smp_processor_id());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle unconfigured int18 (should never happen) */
|
/* Handle unconfigured int18 (should never happen) */
|
||||||
|
|
@ -2277,12 +2282,8 @@ mce_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
|
||||||
break;
|
break;
|
||||||
case CPU_DOWN_FAILED:
|
case CPU_DOWN_FAILED:
|
||||||
case CPU_DOWN_FAILED_FROZEN:
|
case CPU_DOWN_FAILED_FROZEN:
|
||||||
if (!mce_ignore_ce && check_interval) {
|
|
||||||
t->expires = round_jiffies(jiffies +
|
|
||||||
per_cpu(mce_next_interval, cpu));
|
|
||||||
add_timer_on(t, cpu);
|
|
||||||
}
|
|
||||||
smp_call_function_single(cpu, mce_reenable_cpu, &action, 1);
|
smp_call_function_single(cpu, mce_reenable_cpu, &action, 1);
|
||||||
|
mce_start_timer(cpu, t);
|
||||||
break;
|
break;
|
||||||
case CPU_POST_DEAD:
|
case CPU_POST_DEAD:
|
||||||
/* intentionally ignoring frozen here */
|
/* intentionally ignoring frozen here */
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue