aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2019-05-17 17:11:01 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2019-05-17 17:11:01 +0000
commit8f7f38457f940798c149ae40b73e0d20672812de (patch)
tree12ca9d6e8112d4088062c70e62d102001c838200 /sys
parentec55b6c5f513c82e9c5f45aa2fd25f439f9c80d2 (diff)
downloadsrc-8f7f38457f940798c149ae40b73e0d20672812de.tar.gz
src-8f7f38457f940798c149ae40b73e0d20672812de.zip
Free microcode memory later.
With lockless DI, pmap_remove() requires operational thread lock, which is initialized at SI_SUB_RUN_QUEUE for thread0. Move it even later where APs are started, the moment after which other boot memory like trampoline stacks is already being freed. Reported by: gtetlow Sponsored by: The FreeBSD Foundation MFC after: 30 days
Notes
Notes: svn path=/head/; revision=347931
Diffstat (limited to 'sys')
-rw-r--r--sys/x86/x86/ucode.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/x86/x86/ucode.c b/sys/x86/x86/ucode.c
index 93f82e37eb66..d8beeed68215 100644
--- a/sys/x86/x86/ucode.c
+++ b/sys/x86/x86/ucode.c
@@ -260,7 +260,7 @@ restart:
goto restart;
}
}
-SYSINIT(ucode_release, SI_SUB_KMEM + 1, SI_ORDER_ANY, ucode_release, NULL);
+SYSINIT(ucode_release, SI_SUB_SMP + 1, SI_ORDER_ANY, ucode_release, NULL);
void
ucode_load_ap(int cpu)