summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbp <bp@FreeBSD.org>2000-07-09 23:58:56 +0000
committerbp <bp@FreeBSD.org>2000-07-09 23:58:56 +0000
commitb25a59d797af951075e3d3ffafb37b401b4c04fe (patch)
treed82a20e6fc55fa3bb78be3dfa9eea2868b0c179d
parent20c9966da8bc0be0f32c2f576b08ba36e9a28762 (diff)
downloadFreeBSD-src-b25a59d797af951075e3d3ffafb37b401b4c04fe.zip
FreeBSD-src-b25a59d797af951075e3d3ffafb37b401b4c04fe.tar.gz
Correct SYSINIT execution order in the case when KLD contains more
than one SYSINIT with the same 'subsystem' id and different 'order' id. Reviewed by: peter
-rw-r--r--sys/kern/kern_linker.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/kern_linker.c b/sys/kern/kern_linker.c
index e066924..29478b4 100644
--- a/sys/kern/kern_linker.c
+++ b/sys/kern/kern_linker.c
@@ -127,7 +127,7 @@ linker_file_sysinit(linker_file_t lf)
*/
for (sipp = (struct sysinit **)sysinits->ls_items; *sipp; sipp++) {
for (xipp = sipp + 1; *xipp; xipp++) {
- if ((*sipp)->subsystem <= (*xipp)->subsystem ||
+ if ((*sipp)->subsystem < (*xipp)->subsystem ||
((*sipp)->subsystem == (*xipp)->subsystem &&
(*sipp)->order <= (*xipp)->order))
continue; /* skip*/
@@ -178,7 +178,7 @@ linker_file_sysuninit(linker_file_t lf)
*/
for (sipp = (struct sysinit **)sysuninits->ls_items; *sipp; sipp++) {
for (xipp = sipp + 1; *xipp; xipp++) {
- if ((*sipp)->subsystem >= (*xipp)->subsystem ||
+ if ((*sipp)->subsystem > (*xipp)->subsystem ||
((*sipp)->subsystem == (*xipp)->subsystem &&
(*sipp)->order >= (*xipp)->order))
continue; /* skip*/
OpenPOWER on IntegriCloud