]> xenbits.xensource.com Git - xen.git/commitdiff
x86/microcode: Allow reading microcode revision even if it can't be updated
authorAlejandro Vallejo <alejandro.vallejo@cloud.com>
Thu, 6 Jul 2023 07:05:37 +0000 (09:05 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 6 Jul 2023 07:05:37 +0000 (09:05 +0200)
microcode_update_one() currently assumes all microcode handlers are set or
none are. That won't be the case in a future patch, as apply_microcode()
may not be set while the others are. Hence, this patch allows reading the
microcode revision even if updating it is unavailable.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/arch/x86/cpu/microcode/core.c

index c3fee629063e643b3520cfcf83e12022bea729d9..bec8b55db2563b8ee5abd50b82e58dc0c95b7adc 100644 (file)
@@ -750,11 +750,12 @@ __initcall(microcode_init);
 /* Load a cached update to current cpu */
 int microcode_update_one(void)
 {
+    if ( ucode_ops.collect_cpu_info )
+        alternative_vcall(ucode_ops.collect_cpu_info);
+
     if ( !ucode_ops.apply_microcode )
         return -EOPNOTSUPP;
 
-    alternative_vcall(ucode_ops.collect_cpu_info);
-
     return microcode_update_cpu(NULL);
 }