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;
}