summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kern/kern_linker.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/kern/kern_linker.c b/sys/kern/kern_linker.c
index 32cb32a..ac33ef0 100644
--- a/sys/kern/kern_linker.c
+++ b/sys/kern/kern_linker.c
@@ -275,7 +275,7 @@ linker_file_register_modules(linker_file_t lf)
{
struct mod_metadata **start, **stop, **mdp;
const moduledata_t *moddata;
- int error;
+ int first_error, error;
KLD_DPF(FILE, ("linker_file_register_modules: registering modules"
" in %s\n", lf->filename));
@@ -293,6 +293,7 @@ linker_file_register_modules(linker_file_t lf)
} else
return (0);
}
+ first_error = 0;
for (mdp = start; mdp < stop; mdp++) {
if ((*mdp)->md_type != MDT_MODULE)
continue;
@@ -303,10 +304,11 @@ linker_file_register_modules(linker_file_t lf)
if (error) {
printf("Module %s failed to register: %d\n",
moddata->name, error);
- return (error);
+ if (first_error == 0)
+ first_error = error;
}
}
- return (0);
+ return (first_error);
}
static void
OpenPOWER on IntegriCloud