summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/busybox/files/busybox-1.23.1-modprobe-small.patch')
-rw-r--r--sys-apps/busybox/files/busybox-1.23.1-modprobe-small.patch166
1 files changed, 0 insertions, 166 deletions
diff --git a/sys-apps/busybox/files/busybox-1.23.1-modprobe-small.patch b/sys-apps/busybox/files/busybox-1.23.1-modprobe-small.patch
deleted file mode 100644
index 50fc877b50ca..000000000000
--- a/sys-apps/busybox/files/busybox-1.23.1-modprobe-small.patch
+++ /dev/null
@@ -1,166 +0,0 @@
---- busybox-1.23.1/modutils/modprobe-small.c
-+++ busybox-1.23.1-modprobe-small/modutils/modprobe-small.c
-@@ -552,9 +552,23 @@ static int already_loaded(const char *na
- return ret;
- }
- #else
--#define already_loaded(name) is_rmmod
-+#define already_loaded(name) 0
- #endif
-
-+static int rmmod(const char *filename)
-+{
-+ int r;
-+ char modname[MODULE_NAME_LEN];
-+
-+ filename2modname(filename, modname);
-+ r = delete_module(modname, O_NONBLOCK | O_EXCL);
-+ dbg1_error_msg("delete_module('%s', O_NONBLOCK | O_EXCL):%d", modname, r);
-+ if (r != 0 && !(option_mask32 & OPT_q)) {
-+ bb_perror_msg("remove '%s'", modname);
-+ }
-+ return r;
-+}
-+
- /*
- * Given modules definition and module name (or alias, or symbol)
- * load/remove the module respecting dependencies.
-@@ -571,26 +585,36 @@ static void process_module(char *name, c
- module_info **infovec;
- module_info *info;
- int infoidx;
-- int is_rmmod = (option_mask32 & OPT_r) != 0;
-+ int is_remove = (option_mask32 & OPT_r) != 0;
-
- dbg1_error_msg("process_module('%s','%s')", name, cmdline_options);
-
- replace(name, '-', '_');
-
-- dbg1_error_msg("already_loaded:%d is_rmmod:%d", already_loaded(name), is_rmmod);
-+ dbg1_error_msg("already_loaded:%d is_remove:%d", already_loaded(name), is_remove);
-+
-+ if (applet_name[0] == 'r') {
-+ /* rmmod.
-+ * Does not remove dependencies, no need to scan, just remove.
-+ * (compat note: this allows and strips .ko suffix)
-+ */
-+ rmmod(name);
-+ return;
-+ }
-+
- /*
-- * We used to have "is_rmmod != already_loaded(name)" check here, but
-+ * We used to have "is_remove != already_loaded(name)" check here, but
- * modprobe -r pci:v00008086d00007010sv00000000sd00000000bc01sc01i80
- * won't unload modules (there are more than one)
- * which have this alias.
- */
-- if (!is_rmmod && already_loaded(name)) {
-+ if (!is_remove && already_loaded(name)) {
- dbg1_error_msg("nothing to do for '%s'", name);
- return;
- }
-
- options = NULL;
-- if (!is_rmmod) {
-+ if (!is_remove) {
- char *opt_filename = xasprintf("/etc/modules/%s", name);
- options = xmalloc_open_read_close(opt_filename, NULL);
- if (options)
-@@ -624,7 +648,7 @@ static void process_module(char *name, c
- 0 /* depth */
- );
- dbg1_error_msg("dirscan complete");
-- /* Module was not found, or load failed, or is_rmmod */
-+ /* Module was not found, or load failed, or is_remove */
- if (module_found_idx >= 0) { /* module was found */
- infovec = xzalloc(2 * sizeof(infovec[0]));
- infovec[0] = &modinfo[module_found_idx];
-@@ -637,7 +661,7 @@ static void process_module(char *name, c
-
- if (!infovec) {
- /* both dirscan and find_alias found nothing */
-- if (!is_rmmod && applet_name[0] != 'd') /* it wasn't rmmod or depmod */
-+ if (!is_remove && applet_name[0] != 'd') /* it wasn't rmmod or depmod */
- bb_error_msg("module '%s' not found", name);
- //TODO: _and_die()? or should we continue (un)loading modules listed on cmdline?
- goto ret;
-@@ -651,29 +675,15 @@ static void process_module(char *name, c
- * a *list* of modinfo pointers from find_alias().
- */
-
-- /* rmmod or modprobe -r? unload module(s) */
-- if (is_rmmod) {
-+ /* modprobe -r? unload module(s) */
-+ if (is_remove) {
- infoidx = 0;
- while ((info = infovec[infoidx++]) != NULL) {
-- int r;
-- char modname[MODULE_NAME_LEN];
--
-- filename2modname(
-- bb_get_last_path_component_nostrip(info->pathname), modname);
-- r = delete_module(modname, O_NONBLOCK | O_EXCL);
-- dbg1_error_msg("delete_module('%s', O_NONBLOCK | O_EXCL):%d", modname, r);
-+ int r = rmmod(bb_get_last_path_component_nostrip(info->pathname));
- if (r != 0) {
-- if (!(option_mask32 & OPT_q))
-- bb_perror_msg("remove '%s'", modname);
-- goto ret;
-+ goto ret; /* error */
- }
- }
--
-- if (applet_name[0] == 'r') {
-- /* rmmod: do not remove dependencies, exit */
-- goto ret;
-- }
--
- /* modprobe -r: we do not stop here -
- * continue to unload modules on which the module depends:
- * "-r --remove: option causes modprobe to remove a module.
-@@ -694,7 +704,7 @@ static void process_module(char *name, c
- }
- free(deps);
-
-- if (is_rmmod)
-+ if (is_remove)
- continue;
-
- /* We are modprobe: load it */
-@@ -897,10 +907,10 @@ int modprobe_main(int argc UNUSED_PARAM,
- }
-
- #if ENABLE_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
-- /* If not rmmod, parse possible module options given on command line.
-+ /* If not rmmod/-r, parse possible module options given on command line.
- * insmod/modprobe takes one module name, the rest are parameters. */
- options = NULL;
-- if ('r' != applet0) {
-+ if (!(option_mask32 & OPT_r)) {
- char **arg = argv;
- while (*++arg) {
- /* Enclose options in quotes */
-@@ -911,7 +921,7 @@ int modprobe_main(int argc UNUSED_PARAM,
- }
- }
- #else
-- if ('r' != applet0)
-+ if (!(option_mask32 & OPT_r))
- argv[1] = NULL;
- #endif
-
-@@ -935,10 +945,11 @@ int modprobe_main(int argc UNUSED_PARAM,
- }
-
- /* Try to load modprobe.dep.bb */
-- load_dep_bb();
-+ if ('r' != applet0) /* not rmmod */
-+ load_dep_bb();
-
- /* Load/remove modules.
-- * Only rmmod loops here, modprobe has only argv[0] */
-+ * Only rmmod/modprobe -r loops here, insmod/modprobe has only argv[0] */
- do {
- process_module(*argv, options);
- } while (*++argv);