diff options
author | iedowse <iedowse@FreeBSD.org> | 2004-08-27 01:20:26 +0000 |
---|---|---|
committer | iedowse <iedowse@FreeBSD.org> | 2004-08-27 01:20:26 +0000 |
commit | 1268768c3d35a9843a04b6a4552558138597fc4f (patch) | |
tree | 237184defedacba9b0379be7b9853a4f344bff8b /sys/kern/kern_linker.c | |
parent | 5fe6074c1d5d2c91381414fb763bbd01922b15bd (diff) | |
download | FreeBSD-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.c | 5 |
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); |