diff options
author | bp <bp@FreeBSD.org> | 2000-07-09 23:58:56 +0000 |
---|---|---|
committer | bp <bp@FreeBSD.org> | 2000-07-09 23:58:56 +0000 |
commit | b25a59d797af951075e3d3ffafb37b401b4c04fe (patch) | |
tree | d82a20e6fc55fa3bb78be3dfa9eea2868b0c179d | |
parent | 20c9966da8bc0be0f32c2f576b08ba36e9a28762 (diff) | |
download | FreeBSD-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.c | 4 |
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*/ |