summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko2009-06-17 20:33:50 +0200
committerDenys Vlasenko2009-06-17 20:33:50 +0200
commit7eaf58d9586404b4d664f23f3c9f335f053db6b0 (patch)
tree82fbdb8ad224e3d83db4a8cf3ea334982f077a28
parentee47f6e44f1a33146e26c7410ade10a98f78ead1 (diff)
downloadbusybox-7eaf58d9586404b4d664f23f3c9f335f053db6b0.zip
busybox-7eaf58d9586404b4d664f23f3c9f335f053db6b0.tar.gz
modprobe: do not use ->probed_name blidly
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--modutils/modprobe.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/modutils/modprobe.c b/modutils/modprobe.c
index cfc16cb..bef6579 100644
--- a/modutils/modprobe.c
+++ b/modutils/modprobe.c
@@ -220,6 +220,12 @@ static int read_config(const char *path)
config_file_action, NULL, NULL, 1);
}
+static const char *humanly_readable_name(struct module_entry *m)
+{
+ /* probed_name may be NULL. modname always exists. */
+ return m->probed_name ? m->probed_name : m->modname;
+}
+
/* Return: similar to bb_init_module:
* 0 on success,
* -errno on open/read error,
@@ -234,7 +240,8 @@ static int do_modprobe(struct module_entry *m)
if (!(m->flags & MODULE_FLAG_FOUND_IN_MODDEP)) {
if (!(option_mask32 & INSMOD_OPT_SILENT))
- bb_error_msg("module %s not found in modules.dep", m->probed_name);
+ bb_error_msg("module %s not found in modules.dep",
+ humanly_readable_name(m));
return -ENOENT;
}
DBG("do_modprob'ing %s", m->modname);
@@ -259,7 +266,7 @@ static int do_modprobe(struct module_entry *m)
if (rc) {
if (first) {
bb_error_msg("failed to unload module %s: %s",
- m2->probed_name ? m2->probed_name : m2->modname,
+ humanly_readable_name(m2),
moderror(rc));
break;
}
@@ -286,7 +293,7 @@ static int do_modprobe(struct module_entry *m)
free(options);
if (rc) {
bb_error_msg("failed to load module %s (%s): %s",
- m2->probed_name ? m2->probed_name : m2->modname,
+ humanly_readable_name(m2),
fn,
moderror(rc)
);