mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-28 11:25:21 +01:00
amd64: Initialize IPI scoreboard earlier
Scoreboard is needed a moment when smp_started == true. If some kernel daemon thread is started before scoreboard is inited, and does some pmap operation that requires TLB maintanence, which races with SMP startup, we might dereference NULL invl_scoreboard. This is particularly easy to trigger when EARLY_AP_STARTUP is not defined. Reported by: glebius Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D36766
This commit is contained in:
1 parent
dd6bb9abf0
commit
648fa3558c
1 file changed
+1
-1
@@ -579,7 +579,7 @@ invl_scoreboard_init(void *arg __unused)
|
||||
invl_op_pg = INVL_OP_PG;
|
||||
}
|
||||
}
|
||||
SYSINIT(invl_ops, SI_SUB_SMP, SI_ORDER_FIRST, invl_scoreboard_init, NULL);
|
||||
SYSINIT(invl_ops, SI_SUB_SMP - 1, SI_ORDER_ANY, invl_scoreboard_init, NULL);
|
||||
|
||||
static uint32_t *
|
||||
invl_scoreboard_getcpu(u_int cpu)
|
||||
|
||||
Reference in new issue
Block a user