[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v5 4/4] x86/microcode: Disable microcode update handler if DIS_MCU_UPDATE is set
On 05.07.2023 16:03, Alejandro Vallejo wrote: > On Wed, Jul 05, 2023 at 12:51:47PM +0200, Jan Beulich wrote: >>> --- a/xen/arch/x86/cpu/microcode/intel.c >>> +++ b/xen/arch/x86/cpu/microcode/intel.c >>> @@ -385,6 +385,19 @@ static struct microcode_patch *cf_check >>> cpu_request_microcode( >>> return patch; >>> } >>> >>> +bool __init intel_can_load_microcode(void) >>> +{ >>> + uint64_t mcu_ctrl; >>> + >>> + if ( !cpu_has_mcu_ctrl ) >>> + return true; >>> + >>> + rdmsrl(MSR_MCU_CONTROL, mcu_ctrl); >> >> While one would hope that feature bit and MSR access working come in >> matched pairs, I still wonder whether - just to be on the safe side - >> the caller wouldn't better avoid calling here when rev == ~0 (and >> hence we won't try to load ucode anyway). I would envision can_load's >> initializer to become this_cpu(cpu_sig).rev != ~0, with other logic >> adjusted as necessary in early_microcode_init(). >> > We only know about the ucode revision after the collect_cpu_info() call, > and we can only make that call after the vendor-specific section that sets > the function pointers up (and calls intel_can_load_microcode()). Hmm, right, that wasn't quite visible from looking at patch and current tree, because of what earlier patches in the series do. > One could imagine turning can_load into a function pointer so that its > execution is deferred until after the revision check (and skipped > altogether if `rev==~0`). Perhaps not worth going this far, and instead stay with what you have until we know (if ever) that further tweaking is necessary. Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> (maybe with an adjustment to the comment, as mentioned in the earlier reply) Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |