aboutsummaryrefslogtreecommitdiff
path: root/sys/x86
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2016-12-14 19:00:08 +0000
committerMark Johnston <markj@FreeBSD.org>2016-12-14 19:00:08 +0000
commitf85ea63d69bfc774dd52b26291029e1fb182c53a (patch)
tree1aaf89bb92afcb5490f97f6769cb716c8a1e0da1 /sys/x86
parent3d026d871fd2fad2ce5b980750fd47757e548a4a (diff)
downloadsrc-f85ea63d69bfc774dd52b26291029e1fb182c53a.tar.gz
src-f85ea63d69bfc774dd52b26291029e1fb182c53a.zip
Don't run the MCA record refill task during boot.
The MCA taskqueue is not initialized until some time after CMCIs are enabled on the BSP. Reviewed by: cem, jhb MFC after: 1 week Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D8783
Notes
Notes: svn path=/head/; revision=310084
Diffstat (limited to 'sys/x86')
-rw-r--r--sys/x86/x86/mca.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/x86/x86/mca.c b/sys/x86/x86/mca.c
index d005180415be..1d99efc74ed8 100644
--- a/sys/x86/x86/mca.c
+++ b/sys/x86/x86/mca.c
@@ -508,7 +508,7 @@ mca_record_entry(enum scan_mode mode, const struct mca_record *record)
STAILQ_INSERT_TAIL(&mca_records, rec, link);
mca_count++;
mtx_unlock_spin(&mca_lock);
- if (mode == CMCI)
+ if (mode == CMCI && !cold)
taskqueue_enqueue(mca_tq, &mca_refill_task);
}
@@ -714,6 +714,9 @@ mca_createtq(void *dummy)
mca_tq = taskqueue_create_fast("mca", M_WAITOK,
taskqueue_thread_enqueue, &mca_tq);
taskqueue_start_threads(&mca_tq, 1, PI_SWI(SWI_TQ), "mca taskq");
+
+ /* CMCIs during boot may have claimed items from the freelist. */
+ mca_fill_freelist();
}
SYSINIT(mca_createtq, SI_SUB_CONFIGURE, SI_ORDER_ANY, mca_createtq, NULL);