]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
arm64: Don't enable interrupts in init_secondary().
authormarkj <markj@FreeBSD.org>
Thu, 23 Jan 2020 16:07:27 +0000 (16:07 +0000)
committermarkj <markj@FreeBSD.org>
Thu, 23 Jan 2020 16:07:27 +0000 (16:07 +0000)
commit50a3e6955b8166d8f0f52c741c26d36099c26e70
tree45746ae6e2b70de824d37cd16f8eebb78d7e608d
parentf526ea6632efb5f0471d609b284cabdd7a9e096a
arm64: Don't enable interrupts in init_secondary().

Doing so can cause deadlocks or panics during boot, if an interrupt
handler accesses uninitialized per-CPU scheduler structures.  This seems
to occur frequently when running under QEMU or AWS.  The idle threads
are set up to release a spinlock section and enable interrupts in
fork_exit(), so there is no need to enable interrupts earlier.

Reviewed by: kib
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D23328
sys/arm64/arm64/mp_machdep.c