svn commit: r336036 - head/sys/kern
Kyle Evans
kevans at FreeBSD.org
Fri Jul 6 16:51:37 UTC 2018
Author: kevans
Date: Fri Jul 6 16:51:35 2018
New Revision: 336036
URL: https://svnweb.freebsd.org/changeset/base/336036
Log:
kern_environment: Fix SYSINIT ordering
The dynamic environment was being initialized at SI_SUB_KMEM, SI_ORDER_ANY.
I added the hint-merging at SI_SUB_KMEM, SI_ORDER_ANY as well in r335998 -
this can only work by coincidence.
Re-do both to operate at SI_SUB_KMEM + 1, SI_ORDER_FIRST and SI_ORDER_SECOND
respectively to be safe. It's sufficiently obfuscated away as to when in
SU_SUB_KMEM malloc will be available, and the dynamic environment cannot be
relied upon there anyways since it's initialized at SI_ORDER_ANY.
Reported by: bde
Discussed with: bde
X-MFC-With: r335998
Modified:
head/sys/kern/kern_environment.c
head/sys/kern/subr_hints.c
Modified: head/sys/kern/kern_environment.c
==============================================================================
--- head/sys/kern/kern_environment.c Fri Jul 6 16:23:30 2018 (r336035)
+++ head/sys/kern/kern_environment.c Fri Jul 6 16:51:35 2018 (r336036)
@@ -346,7 +346,7 @@ init_dynamic_kenv(void *data __unused)
mtx_init(&kenv_lock, "kernel environment", NULL, MTX_DEF);
dynamic_kenv = 1;
}
-SYSINIT(kenv, SI_SUB_KMEM, SI_ORDER_ANY, init_dynamic_kenv, NULL);
+SYSINIT(kenv, SI_SUB_KMEM + 1, SI_ORDER_FIRST, init_dynamic_kenv, NULL);
void
freeenv(char *env)
Modified: head/sys/kern/subr_hints.c
==============================================================================
--- head/sys/kern/subr_hints.c Fri Jul 6 16:23:30 2018 (r336035)
+++ head/sys/kern/subr_hints.c Fri Jul 6 16:51:35 2018 (r336036)
@@ -88,7 +88,7 @@ static_hints_to_env(void *data __unused)
}
/* Any time after dynamic env is setup */
-SYSINIT(hintenv, SI_SUB_KMEM, SI_ORDER_ANY, static_hints_to_env, NULL);
+SYSINIT(hintenv, SI_SUB_KMEM + 1, SI_ORDER_SECOND, static_hints_to_env, NULL);
/*
* Checks the environment to see if we even have any hints. If it has no hints,
More information about the svn-src-head
mailing list