diff options
author | Mark Johnston <markj@FreeBSD.org> | 2016-12-14 19:00:08 +0000 |
---|---|---|
committer | Mark Johnston <markj@FreeBSD.org> | 2016-12-14 19:00:08 +0000 |
commit | f85ea63d69bfc774dd52b26291029e1fb182c53a (patch) | |
tree | 1aaf89bb92afcb5490f97f6769cb716c8a1e0da1 /sys/x86 | |
parent | 3d026d871fd2fad2ce5b980750fd47757e548a4a (diff) | |
download | src-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.c | 5 |
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); |