File tree Expand file tree Collapse file tree 1 file changed +12
-0
lines changed
arch/x86/kernel/cpu/microcode Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -600,6 +600,12 @@ static int apply_microcode_early(struct ucode_cpu_info *uci, bool early)
600
600
return UCODE_OK ;
601
601
}
602
602
603
+ /*
604
+ * Writeback and invalidate caches before updating microcode to avoid
605
+ * internal issues depending on what the microcode is updating.
606
+ */
607
+ native_wbinvd ();
608
+
603
609
/* write microcode via MSR 0x79 */
604
610
native_wrmsrl (MSR_IA32_UCODE_WRITE , (unsigned long )mc -> bits );
605
611
@@ -816,6 +822,12 @@ static enum ucode_state apply_microcode_intel(int cpu)
816
822
return UCODE_OK ;
817
823
}
818
824
825
+ /*
826
+ * Writeback and invalidate caches before updating microcode to avoid
827
+ * internal issues depending on what the microcode is updating.
828
+ */
829
+ native_wbinvd ();
830
+
819
831
/* write microcode via MSR 0x79 */
820
832
wrmsrl (MSR_IA32_UCODE_WRITE , (unsigned long )mc -> bits );
821
833
You can’t perform that action at this time.
0 commit comments