m->time = get_seconds();
m->cpuvendor = boot_cpu_data.x86_vendor;
m->cpuid = cpuid_eax(1);
+#ifdef CONFIG_SMP
m->socketid = cpu_data(m->extcpu).phys_proc_id;
+#endif
m->apicid = cpu_data(m->extcpu).initial_apicid;
rdmsrl(MSR_IA32_MCG_CAP, m->mcgcap);
}
if (regs && (m->mcgstatus & (MCG_STATUS_RIPV|MCG_STATUS_EIPV))) {
m->ip = regs->ip;
m->cs = regs->cs;
- /*
- * When in VM86 mode make the cs look like ring 3
- * always. This is a lie, but it's better than passing
- * the additional vm86 bit around everywhere.
- */
- if (v8086_mode(regs))
- m->cs |= 3;
} else {
m->ip = 0;
m->cs = 0;
*/
add_taint(TAINT_MACHINE_CHECK);
- mce_get_rip(&m, regs);
severity = mce_severity(&m, tolerant, NULL);
/*
if (severity == MCE_AO_SEVERITY && mce_usable_address(&m))
mce_ring_add(m.addr >> PAGE_SHIFT);
+ mce_get_rip(&m, regs);
mce_log(&m);
if (severity > worst) {