summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_linker.c
diff options
context:
space:
mode:
authoriedowse <iedowse@FreeBSD.org>2004-08-27 01:20:26 +0000
committeriedowse <iedowse@FreeBSD.org>2004-08-27 01:20:26 +0000
commit1268768c3d35a9843a04b6a4552558138597fc4f (patch)
tree237184defedacba9b0379be7b9853a4f344bff8b /sys/kern/kern_linker.c
parent5fe6074c1d5d2c91381414fb763bbd01922b15bd (diff)
downloadFreeBSD-src-1268768c3d35a9843a04b6a4552558138597fc4f.zip
FreeBSD-src-1268768c3d35a9843a04b6a4552558138597fc4f.tar.gz
When trying each linker class in turn with a preloaded module, exit
the loop if the preload was successful. Previously a successful preload was ignored if the linker class was not the last in the list.
Diffstat (limited to 'sys/kern/kern_linker.c')
-rw-r--r--sys/kern/kern_linker.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/kern/kern_linker.c b/sys/kern/kern_linker.c
index d2a2329..49ad88b 100644
--- a/sys/kern/kern_linker.c
+++ b/sys/kern/kern_linker.c
@@ -1203,10 +1203,9 @@ linker_preload(void *arg)
lf = NULL;
TAILQ_FOREACH(lc, &classes, link) {
error = LINKER_LINK_PRELOAD(lc, modname, &lf);
- if (error) {
- lf = NULL;
+ if (!error)
break;
- }
+ lf = NULL;
}
if (lf)
TAILQ_INSERT_TAIL(&loaded_files, lf, loaded);
OpenPOWER on IntegriCloud