|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v3 1/5] x86/microcode: Allow reading microcode revision even if it can't be updated
The code 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@xxxxxxxxx>
---
v3:
* Hunks taken from v2/patch4 (Jan)
---
xen/arch/x86/cpu/microcode/core.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/xen/arch/x86/cpu/microcode/core.c
b/xen/arch/x86/cpu/microcode/core.c
index e65af4b82e..df7e1df870 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -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);
}
@@ -860,6 +861,9 @@ int __init early_microcode_init(unsigned long *module_map,
break;
}
+ if ( ucode_ops.collect_cpu_info )
+ ucode_ops.collect_cpu_info();
+
if ( !ucode_ops.apply_microcode )
{
printk(XENLOG_WARNING "Microcode loading not available\n");
@@ -868,8 +872,6 @@ int __init early_microcode_init(unsigned long *module_map,
microcode_grab_module(module_map, mbi);
- ucode_ops.collect_cpu_info();
-
if ( ucode_mod.mod_end || ucode_blob.size )
rc = early_microcode_update_cpu();
--
2.34.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |