/* Called for each booted CPU to set up machine checks. Must be called with preempt off:  */
void __cpuinit mcheck_cpu_init(struct cpuinfo_x86 *c)
/* Called for each booted CPU to set up machine checks. Must be called with preempt off:  */
void __cpuinit mcheck_cpu_init(struct cpuinfo_x86 *c)
{
	if (mce_disabled)
		return;
	__mcheck_cpu_ancient_init(c);
	if (!mce_available(c))
		return;
	if (__mcheck_cpu_cap_init() < 0 || __mcheck_cpu_apply_quirks(c) < 0) {
		mce_disabled = 1;
		return;
	}
	machine_check_vector = do_machine_check;
	__mcheck_cpu_init_generic();
	__mcheck_cpu_init_vendor(c);
	__mcheck_cpu_init_timer();
	INIT_WORK(&__get_cpu_var(mce_work), mce_process_work);
}