Module Name: src Committed By: christos Date: Thu Aug 4 06:13:15 UTC 2016
Modified Files: src/sys/kern: kern_module.c Log Message: Print the parent module that asked for the builtin to be loaded and failed. XXX: if a driver is built-in why can't it ask for a filesystem module to be loaded? To generate a diff of this commit: cvs rdiff -u -r1.115 -r1.116 src/sys/kern/kern_module.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/kern_module.c diff -u src/sys/kern/kern_module.c:1.115 src/sys/kern/kern_module.c:1.116 --- src/sys/kern/kern_module.c:1.115 Thu Jul 7 02:55:43 2016 +++ src/sys/kern/kern_module.c Thu Aug 4 02:13:15 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_module.c,v 1.115 2016/07/07 06:55:43 msaitoh Exp $ */ +/* $NetBSD: kern_module.c,v 1.116 2016/08/04 06:13:15 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_module.c,v 1.115 2016/07/07 06:55:43 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_module.c,v 1.116 2016/08/04 06:13:15 christos Exp $"); #define _MODULE_INTERNAL @@ -93,7 +93,8 @@ static void module_require_force(module_ static int module_do_load(const char *, bool, int, prop_dictionary_t, module_t **, modclass_t modclass, bool); static int module_do_unload(const char *, bool); -static int module_do_builtin(const char *, module_t **, prop_dictionary_t); +static int module_do_builtin(const module_t *, const char *, module_t **, + prop_dictionary_t); static int module_fetch_info(module_t *); static void module_thread(void *); @@ -266,8 +267,8 @@ module_builtin_add(modinfo_t *const *mip /* finally, init (if required) */ if (init) { for (i = 0; i < nmodinfo; i++) { - rv = module_do_builtin(modp[i]->mod_info->mi_name, - NULL, NULL); + rv = module_do_builtin(modp[i], + modp[i]->mod_info->mi_name, NULL, NULL); /* throw in the towel, recovery hard & not worth it */ if (rv) panic("builtin module \"%s\" init failed: %d", @@ -506,7 +507,8 @@ module_init_class(modclass_t modclass) * MODFLG_MUST_FORCE, don't try to override that!) */ if ((mod->mod_flags & MODFLG_MUST_FORCE) || - module_do_builtin(mi->mi_name, NULL, NULL) != 0) { + module_do_builtin(mod, mi->mi_name, NULL, + NULL) != 0) { TAILQ_REMOVE(&module_builtins, mod, mod_chain); TAILQ_INSERT_TAIL(&bi_fail, mod, mod_chain); } @@ -746,7 +748,8 @@ module_enqueue(module_t *mod) * already linked into the kernel. */ static int -module_do_builtin(const char *name, module_t **modp, prop_dictionary_t props) +module_do_builtin(const module_t *pmod, const char *name, module_t **modp, + prop_dictionary_t props) { const char *p, *s; char buf[MAXMODNAME]; @@ -785,7 +788,8 @@ module_do_builtin(const char *name, modu * cases (such as nfsserver + nfs), the dependee can be * succesfully linked without the dependencies. */ - module_error("can't find builtin dependency `%s'", name); + module_error("%s: can't find builtin dependency `%s'", + pmod->mod_info->mi_name, name); return ENOENT; } @@ -804,12 +808,12 @@ module_do_builtin(const char *name, modu if (buf[0] == '\0') break; if (mod->mod_nrequired == MAXMODDEPS - 1) { - module_error("too many required modules " - "%d >= %d", mod->mod_nrequired, - MAXMODDEPS - 1); + module_error("%s: too many required modules " + "%d >= %d", pmod->mod_info->mi_name, + mod->mod_nrequired, MAXMODDEPS - 1); return EINVAL; } - error = module_do_builtin(buf, &mod2, NULL); + error = module_do_builtin(mod, buf, &mod2, NULL); if (error != 0) { return error; } @@ -913,7 +917,7 @@ module_do_load(const char *name, bool is depth--; return EPERM; } else { - error = module_do_builtin(name, modp, props); + error = module_do_builtin(mod, name, modp, props); depth--; return error; }