diff options
Diffstat (limited to 'testing/kmod/0006-modprobe-remove-support-for-path-based-loading.patch')
-rw-r--r-- | testing/kmod/0006-modprobe-remove-support-for-path-based-loading.patch | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/testing/kmod/0006-modprobe-remove-support-for-path-based-loading.patch b/testing/kmod/0006-modprobe-remove-support-for-path-based-loading.patch new file mode 100644 index 000000000..b694413fb --- /dev/null +++ b/testing/kmod/0006-modprobe-remove-support-for-path-based-loading.patch @@ -0,0 +1,79 @@ +From 658e2cafc2b88d1ab88f20b6183daabc113d3714 Mon Sep 17 00:00:00 2001 +From: Dave Reisner <dreisner@archlinux.org> +Date: Sat, 4 Feb 2012 16:08:34 -0500 +Subject: [PATCH 6/8] modprobe: remove support for path based loading + +m-i-t doesn't support this, and it causes serious problems with local +files clashing with alias names. +--- + tools/kmod-modprobe.c | 35 ++--------------------------------- + 1 files changed, 2 insertions(+), 33 deletions(-) + +diff --git a/tools/kmod-modprobe.c b/tools/kmod-modprobe.c +index e70bf3d..b9943da 100644 +--- a/tools/kmod-modprobe.c ++++ b/tools/kmod-modprobe.c +@@ -737,27 +737,6 @@ error: + return err; + } + +-static int insmod_path(struct kmod_ctx *ctx, const char *path, +- const char *extra_options) +-{ +- struct kmod_module *mod; +- struct array recursion; +- int err; +- +- err = kmod_module_new_from_path(ctx, path, &mod); +- if (err < 0) { +- LOG("Module %s not found.\n", path); +- return err; +- } +- +- array_init(&recursion, INSMOD_RECURSION_STEP); +- err = insmod_do_module(mod, extra_options, true, &recursion); +- kmod_module_unref(mod); +- array_free_array(&recursion); +- +- return err; +-} +- + static int handle_failed_lookup(struct kmod_ctx *ctx, const char *alias) + { + struct kmod_module *mod; +@@ -831,22 +810,12 @@ static int insmod_alias(struct kmod_ctx *ctx, const char *alias, + return err; + } + +-static int insmod(struct kmod_ctx *ctx, const char *name, +- const char *extra_options) +-{ +- struct stat st; +- if (stat(name, &st) == 0) +- return insmod_path(ctx, name, extra_options); +- else +- return insmod_alias(ctx, name, extra_options); +-} +- + static int insmod_all(struct kmod_ctx *ctx, char **args, int nargs) + { + int i, err = 0; + + for (i = 0; i < nargs; i++) { +- int r = insmod(ctx, args[i], NULL); ++ int r = insmod_alias(ctx, args[i], NULL); + if (r < 0) + err = r; + } +@@ -1232,7 +1201,7 @@ static int do_modprobe(int argc, char **orig_argv) + char *opts; + err = options_from_array(args, nargs, &opts); + if (err == 0) { +- err = insmod(ctx, args[0], opts); ++ err = insmod_alias(ctx, args[0], opts); + free(opts); + } + } +-- +1.7.9 + |