--- sys/dev/cpuctl/cpuctl.c.orig 2018-03-17 00:49:59.000000000 +0100 +++ sys/dev/cpuctl/cpuctl.c 2018-03-26 22:50:33.209937000 +0200 @@ -362,6 +362,8 @@ is_bound = cpu_sched_is_bound(td); set_cpu(cpu, td); critical_enter(); + wrmsr_safe(MSR_BIOS_SIGN, 0); + do_cpuid(1, tmp); rdmsr_safe(MSR_BIOS_SIGN, &rev0); /* Get current microcode revision. */ /* @@ -373,9 +375,9 @@ /* * Serialize instruction flow. */ - do_cpuid(0, tmp); - critical_exit(); + do_cpuid(1, tmp); rdmsr_safe(MSR_BIOS_SIGN, &rev1); /* Get new microcode revision. */ + critical_exit(); restore_cpu(oldcpu, is_bound, td); if (rev1 > rev0) ret = 0;