Lines 362-367
Link Here
|
362 |
is_bound = cpu_sched_is_bound(td); |
362 |
is_bound = cpu_sched_is_bound(td); |
363 |
set_cpu(cpu, td); |
363 |
set_cpu(cpu, td); |
364 |
critical_enter(); |
364 |
critical_enter(); |
|
|
365 |
wrmsr_safe(MSR_BIOS_SIGN, 0); |
366 |
do_cpuid(1, tmp); |
365 |
rdmsr_safe(MSR_BIOS_SIGN, &rev0); /* Get current microcode revision. */ |
367 |
rdmsr_safe(MSR_BIOS_SIGN, &rev0); /* Get current microcode revision. */ |
366 |
|
368 |
|
367 |
/* |
369 |
/* |
Lines 373-381
Link Here
|
373 |
/* |
375 |
/* |
374 |
* Serialize instruction flow. |
376 |
* Serialize instruction flow. |
375 |
*/ |
377 |
*/ |
376 |
do_cpuid(0, tmp); |
378 |
do_cpuid(1, tmp); |
377 |
critical_exit(); |
|
|
378 |
rdmsr_safe(MSR_BIOS_SIGN, &rev1); /* Get new microcode revision. */ |
379 |
rdmsr_safe(MSR_BIOS_SIGN, &rev1); /* Get new microcode revision. */ |
|
|
380 |
critical_exit(); |
379 |
restore_cpu(oldcpu, is_bound, td); |
381 |
restore_cpu(oldcpu, is_bound, td); |
380 |
if (rev1 > rev0) |
382 |
if (rev1 > rev0) |
381 |
ret = 0; |
383 |
ret = 0; |