Page MenuHomeFreeBSD

D57054.id.diff
No OneTemporary

D57054.id.diff

diff --git a/sys/x86/x86/ucode.c b/sys/x86/x86/ucode.c
--- a/sys/x86/x86/ucode.c
+++ b/sys/x86/x86/ucode.c
@@ -133,14 +133,13 @@
wrmsr_safe(MSR_BIOS_UPDT_TRIG, (uint64_t)(uintptr_t)data);
break;
case EARLY:
-#ifdef __amd64__
- wrmsr_early_safe_start();
- if (wrmsr_early_safe(MSR_BIOS_UPDT_TRIG,
- (uint64_t)(uintptr_t)data) != 0)
- ucode_error = LOAD_FAILED;
- wrmsr_early_safe_end();
- break;
-#endif
+ /*
+ * Intel's MSR_BIOS_UPDT_TRIG does not issue #GP, so the
+ * wrmsr_early_safe() fault-handling machinery is unnecessary
+ * and could introduce risks. Fall through to the bare wrmsr
+ * path.
+ */
+ /* FALLTHROUGH */
case UNSAFE:
wrmsr(MSR_BIOS_UPDT_TRIG, (uint64_t)(uintptr_t)data);
break;

File Metadata

Mime Type
text/plain
Expires
Wed, Sep 9, 3:16 AM (4 h, 34 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38557924
Default Alt Text
D57054.id.diff (741 B)

Event Timeline