diff options
Diffstat (limited to 'package/busybox/busybox-1.14.1-modprobe.patch')
-rw-r--r-- | package/busybox/busybox-1.14.1-modprobe.patch | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/package/busybox/busybox-1.14.1-modprobe.patch b/package/busybox/busybox-1.14.1-modprobe.patch deleted file mode 100644 index 96901250f..000000000 --- a/package/busybox/busybox-1.14.1-modprobe.patch +++ /dev/null @@ -1,132 +0,0 @@ -diff -urpN busybox-1.14.1/modutils/modprobe.c busybox-1.14.1-modprobe/modutils/modprobe.c ---- busybox-1.14.1/modutils/modprobe.c 2009-05-27 18:01:37.000000000 +0200 -+++ busybox-1.14.1-modprobe/modutils/modprobe.c 2009-06-04 19:01:04.000000000 +0200 -@@ -8,12 +8,17 @@ - * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. - */ - -+/* Note that unlike older versions of modules.dep/depmod (busybox and m-i-t), -+ * we expect the full dependency list to be specified in modules.dep. Older -+ * versions would only export the direct dependency list. -+ */ -+ - #include "libbb.h" - #include "modutils.h" - #include <sys/utsname.h> - #include <fnmatch.h> - --//#define DBG(...) bb_error_msg(__VA_ARGS__) -+//#define DBG(fmt, ...) bb_error_msg("%s: " fmt, __func__, ## __VA_ARGS__) - #define DBG(...) ((void)0) - - #define MODULE_FLAG_LOADED 0x0001 -@@ -116,6 +121,7 @@ static void add_probe(const char *name) - return; - } - -+ DBG("queuing %s", name); - m->probed_name = name; - m->flags |= MODULE_FLAG_NEED_DEPS; - llist_add_to_end(&G.probes, m); -@@ -205,9 +211,10 @@ static int read_config(const char *path) - - static int do_modprobe(struct module_entry *m) - { -- struct module_entry *m2; -+ struct module_entry *m2 = m2; /* for compiler */ - char *fn, *options; -- int rc = -1; -+ int rc, first; -+ llist_t *l; - - if (!(m->flags & MODULE_FLAG_FOUND_IN_MODDEP)) { - DBG("skipping %s, not found in modules.dep", m->modname); -@@ -218,13 +225,25 @@ static int do_modprobe(struct module_ent - if (!(option_mask32 & MODPROBE_OPT_REMOVE)) - m->deps = llist_rev(m->deps); - -+ for (l = m->deps; l != NULL; l = l->link) -+ DBG("dep: %s", l->data); -+ -+ first = 1; - rc = 0; - while (m->deps && rc == 0) { - fn = llist_pop(&m->deps); - m2 = get_or_add_modentry(fn); - if (option_mask32 & MODPROBE_OPT_REMOVE) { -- if (bb_delete_module(m->modname, O_EXCL) != 0) -- rc = errno; -+ if (m2->flags & MODULE_FLAG_LOADED) { -+ if (bb_delete_module(m2->modname, O_EXCL) != 0) { -+ if (first) -+ rc = errno; -+ } else { -+ m2->flags &= ~MODULE_FLAG_LOADED; -+ } -+ } -+ /* do not error out if *deps* fail to unload */ -+ first = 0; - } else if (!(m2->flags & MODULE_FLAG_LOADED)) { - options = m2->options; - m2->options = NULL; -@@ -242,11 +261,10 @@ static int do_modprobe(struct module_ent - free(fn); - } - --//FIXME: what if rc < 0? -- if (rc > 0 && !(option_mask32 & INSMOD_OPT_SILENT)) { -+ if (rc && !(option_mask32 & INSMOD_OPT_SILENT)) { - bb_error_msg("failed to %sload module %s: %s", - (option_mask32 & MODPROBE_OPT_REMOVE) ? "un" : "", -- m->probed_name ? m->probed_name : m->modname, -+ m2->probed_name ? m2->probed_name : m2->modname, - moderror(rc) - ); - } -@@ -294,7 +312,8 @@ static void load_modules_dep(void) - llist_add_to(&m->deps, xstrdup(tokens[0])); - if (tokens[1]) - string_to_llist(tokens[1], &m->deps, " "); -- } -+ } else -+ DBG("skipping dep line"); - } - config_close(p); - } -@@ -344,10 +363,12 @@ int modprobe_main(int argc UNUSED_PARAM, - if (opt & (MODPROBE_OPT_INSERT_ALL | MODPROBE_OPT_REMOVE)) { - /* Each argument is a module name */ - do { -+ DBG("adding module %s", *argv); - add_probe(*argv++); - } while (*argv); - } else { - /* First argument is module name, rest are parameters */ -+ DBG("probing just module %s", *argv); - add_probe(argv[0]); - G.cmdline_mopts = parse_cmdline_module_options(argv); - } -diff -urpN busybox-1.14.1/modutils/modprobe-small.c busybox-1.14.1-modprobe/modutils/modprobe-small.c ---- busybox-1.14.1/modutils/modprobe-small.c 2009-05-27 18:00:23.000000000 +0200 -+++ busybox-1.14.1-modprobe/modutils/modprobe-small.c 2009-06-04 19:01:28.000000000 +0200 -@@ -656,7 +656,7 @@ depmod -[aA] [-n -e -v -q -V -r -u] - [-b basedirectory] [forced_version] - depmod [-n -e -v -q -r -u] [-F kernelsyms] module1.ko module2.ko ... - If no arguments (except options) are given, "depmod -a" is assumed. --depmod will output a dependancy list suitable for the modprobe utility. -+depmod will output a dependency list suitable for the modprobe utility. - Options: - -a, --all Probe all modules - -A, --quick Only does the work if there's a new module -diff -urpN busybox-1.14.1/modutils/modutils.c busybox-1.14.1-modprobe/modutils/modutils.c ---- busybox-1.14.1/modutils/modutils.c 2009-05-27 18:00:23.000000000 +0200 -+++ busybox-1.14.1-modprobe/modutils/modutils.c 2009-06-03 12:50:48.000000000 +0200 -@@ -57,7 +57,7 @@ char * FAST_FUNC filename2modname(const - from = bb_get_last_path_component_nostrip(filename); - for (i = 0; i < (MODULE_NAME_LEN-1) && from[i] != '\0' && from[i] != '.'; i++) - modname[i] = (from[i] == '-') ? '_' : from[i]; -- modname[i] = 0; -+ modname[i] = '\0'; - - return modname; - } |