From 885fec3e0897aab84a66b2888a90632a43750fb7 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sat, 28 May 2005 23:20:05 +0000 Subject: Fix panic when module is compiled in and it is loaded from loader.conf. Only panic is fixed, module will be still listed in kldstat(8) output. Not sure what is correct fix, because adding unloading code in case of failure to linker_init_kernel_modules() doesn't work. --- sys/kern/kern_linker.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'sys') diff --git a/sys/kern/kern_linker.c b/sys/kern/kern_linker.c index 32cb32ac5b52..ac33ef017f52 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 -- cgit v1.3