|
@@ -414,9 +414,17 @@ void __init alternative_instructions(void)
|
|
|
that might execute the to be patched code.
|
|
|
Other CPUs are not running. */
|
|
|
stop_nmi();
|
|
|
-#ifdef CONFIG_X86_MCE
|
|
|
- stop_mce();
|
|
|
-#endif
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Don't stop machine check exceptions while patching.
|
|
|
+ * MCEs only happen when something got corrupted and in this
|
|
|
+ * case we must do something about the corruption.
|
|
|
+ * Ignoring it is worse than a unlikely patching race.
|
|
|
+ * Also machine checks tend to be broadcast and if one CPU
|
|
|
+ * goes into machine check the others follow quickly, so we don't
|
|
|
+ * expect a machine check to cause undue problems during to code
|
|
|
+ * patching.
|
|
|
+ */
|
|
|
|
|
|
apply_alternatives(__alt_instructions, __alt_instructions_end);
|
|
|
|
|
@@ -456,9 +464,6 @@ void __init alternative_instructions(void)
|
|
|
(unsigned long)__smp_locks_end);
|
|
|
|
|
|
restart_nmi();
|
|
|
-#ifdef CONFIG_X86_MCE
|
|
|
- restart_mce();
|
|
|
-#endif
|
|
|
}
|
|
|
|
|
|
/**
|