x86/ucode: Abort parallel load early on any control thread error

EIO is not the only error that ucode_ops.apply_microcode() can produce.
EINVAL, EEXISTS and ENXIO can be generated too, each of which mean that Xen is
unhappy in some way with the proposed blob.

Some of these can be bypassed with --force, which will cause the parallel load
to be attempted.

Fixes: 5ed12565aa ("microcode: rendezvous CPUs in NMI handler and load ucode")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
(cherry picked from commit e0bb712a28)
[Note: --force doesn't exist in this version of Xen]
This commit is contained in:
Andrew Cooper committed 2025-10-28 18:18:20 +00:00
1 parent d04a36f2e4
commit f0fcf6979f
1 file changed
+2 -2
+2 -2
View File
@@ -503,10 +503,10 @@ static int control_thread_fn(const struct microcode_patch *patch)
atomic_inc(&cpu_updated);
atomic_inc(&cpu_out);
if ( ret == -EIO )
if ( ret )
{
printk(XENLOG_ERR
"Late loading aborted: CPU%u failed to update ucode\n", cpu);
"Late loading aborted: CPU%u failed to update ucode: %d\n", cpu, ret);
goto out;
}
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.