x86/microcode: Add missing unlock in microcode_update_helper()

microcode_update_helper() may return early while holding
cpu_add_remove_lock, hence preventing any writers from taking it again.

Leave through the `put` label instead so it's properly released.

Fixes: 5ed12565aa ("microcode: rendezvous CPUs in NMI handler and load ucode")
Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
master commit: b35b22acb8
master date: 2023-06-05 16:11:10 +0100
This commit is contained in:
Alejandro Vallejo authored and Jan Beulich committed 2023-07-17 08:28:19 +02:00
1 parent 32f3486f3f
commit 6ecb20151e
1 file changed
+2 -1
+2 -1
View File
@@ -596,7 +596,8 @@ static long cf_check microcode_update_helper(void *data)
printk(XENLOG_WARNING
"CPU%u is expected to lead ucode loading (but got CPU%u)\n",
nmi_cpu, cpumask_first(&cpu_online_map));
return -EPERM;
ret = -EPERM;
goto put;
}
patch = parse_blob(buffer->buffer, buffer->len);
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.