X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fmodprobe.c;h=75d6387c6fbe6b6c887d2117ee8c62ac6a242199;hp=f58f50c65c3f4f8284a6bd9bf7a2af1bb548a00a;hb=e6142f2e647e83238b1e399b1264e8adb05409f9;hpb=0b1c5ad55be0ee7f7a19e9cd31f07562dcd8dcc1 diff --git a/src/bin/lttng-sessiond/modprobe.c b/src/bin/lttng-sessiond/modprobe.c index f58f50c65..75d6387c6 100644 --- a/src/bin/lttng-sessiond/modprobe.c +++ b/src/bin/lttng-sessiond/modprobe.c @@ -34,6 +34,7 @@ #include "modprobe.h" #include "kern-modules.h" +#include "lttng-sessiond.h" #define LTTNG_MOD_REQUIRED 1 #define LTTNG_MOD_OPTIONAL 0 @@ -198,6 +199,7 @@ static int modprobe_lttng(struct kern_modules_param *modules, } } else { DBG("Modprobe successfully %s", modules[i].name); + modules[i].loaded = true; } kmod_module_unref(mod); @@ -272,6 +274,10 @@ static void modprobe_remove_lttng(const struct kern_modules_param *modules, for (i = entries - 1; i >= 0; i--) { struct kmod_module *mod = NULL; + if (!modules[i].loaded) { + continue; + } + ret = kmod_module_new_from_name(ctx, modules[i].name, &mod); if (ret < 0) { PERROR("Failed to create kmod module for %s", modules[i].name); @@ -338,6 +344,7 @@ static int modprobe_lttng(struct kern_modules_param *modules, } } else { DBG("Modprobe successfully %s", modules[i].name); + modules[i].loaded = true; } } @@ -352,6 +359,9 @@ static void modprobe_remove_lttng(const struct kern_modules_param *modules, char modprobe[256]; for (i = entries - 1; i >= 0; i--) { + if (!modules[i].loaded) { + continue; + } ret = snprintf(modprobe, sizeof(modprobe), "/sbin/modprobe -r -q %s", modules[i].name); @@ -559,12 +569,7 @@ int modprobe_lttng_data(void) * Base probes: either from command line option, environment * variable or default list. */ - if (kmod_probes_list) { - list = kmod_probes_list; - } else { - list = utils_get_kmod_probes_list(); - } - + list = config.kmod_probes_list.value; if (list) { /* User-specified probes. */ ret = append_list_to_probes(list); @@ -599,12 +604,7 @@ int modprobe_lttng_data(void) /* * Extra modules? Append them to current probes list. */ - if (kmod_extra_probes_list) { - list = kmod_extra_probes_list; - } else { - list = utils_get_extra_kmod_probes_list(); - } - + list = config.kmod_extra_probes_list.value; if (list) { ret = append_list_to_probes(list); if (ret) {