HomeFreeBSD

x86: Close race condition on MCA task queues at startup

Description

x86: Close race condition on MCA task queues at startup

Currently, the CMCI handler checks the cold variable to determine
whether it can schedule a task. The task queue is setup as part of the
mca_startup() function, which is run well after the configure_final()
function sets the cold variable to 0. Therefore, if an MCA arrives
in the window between configure_final() and mca_startup() running,
the code could try to schedule a task on an unintitalized task queue.

Close the race by specifically checking whether the mca_startup()
function has run.

Reviewed by: markj
MFC after: 1 week
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D12276

Details

Provenance
jtlAuthored on Fri, Oct 3, 4:23 PM
Reviewer
markj
Differential Revision
D12276: x86: Close race condition on MCA task queues at startup
Parents
rGa0c709ab5af4: lsvfs(1): Capsicumise
Branches
Unknown
Tags
Unknown