x86/ucode: Drop structurally unreachable ASSERT()s

It's impossible for wait_for_state() to return false when looking for
LOADING_EXIT, so much so that the optimiser can drop the ASSERT()s.

No functional change.

Fixes: 5ed12565aa ("microcode: rendezvous CPUs in NMI handler and load ucode")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
Andrew Cooper committed 2025-11-24 15:17:39 +00:00
1 parent a405bf42ed
commit 76f80eaf70
1 file changed
+6 -10
+6 -10
View File
@@ -320,12 +320,10 @@ static int secondary_thread_fn(void)
self_nmi();
/*
* Wait for ucode loading is done in case that the NMI does not arrive
* synchronously, which may lead to a not-yet-updated CPU signature is
* copied below.
* NMIs may not be delivered synchronously. Wait for the primary threads
* to be done.
*/
if ( unlikely(!wait_for_state(LOADING_EXIT)) )
ASSERT_UNREACHABLE();
wait_for_state(LOADING_EXIT);
/* Copy update revision from the primary thread. */
this_cpu(cpu_sig).rev =
@@ -345,12 +343,10 @@ static int primary_thread_fn(const struct microcode_patch *patch,
self_nmi();
/*
* Wait for ucode loading is done in case that the NMI does not arrive
* synchronously, which may lead to a not-yet-updated error is returned
* below.
* NMIs may not be delivered synchronously. Wait for the primary
* threads to be done.
*/
if ( unlikely(!wait_for_state(LOADING_EXIT)) )
ASSERT_UNREACHABLE();
wait_for_state(LOADING_EXIT);
return this_cpu(loading_err);
}
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.