[PATCH] [3/4] MCE: Reinitialize per cpu features and ancient mces on resume

From: Andi Kleen
Date: Tue Aug 05 2008 - 13:18:15 EST



This fixes a long standing bug in the machine check code. On resume the
boot CPU wouldn't get its vendor specific state like thermal handling
reinitialized. This means the boot cpu wouldn't ever get any thermal
events reported again. Also the newly added ancient CPUs have the same problem.

Call the respective initialization functions on resume.


Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>

Index: linux/arch/x86/kernel/cpu/mcheck/mce_64.c
===================================================================
--- linux.orig/arch/x86/kernel/cpu/mcheck/mce_64.c
+++ linux/arch/x86/kernel/cpu/mcheck/mce_64.c
@@ -753,6 +753,8 @@ __setup("mce=", mcheck_enable);
static int mce_resume(struct sys_device *dev)
{
mce_init(NULL);
+ mce_ancient_init(&current_cpu_data);
+ mce_cpu_features(&current_cpu_data);
return 0;
}

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/