#include <linux/seq_file.h>
#include <lttng/events.h>
+#include <lttng/events-internal.h>
/*
* probe list is protected by sessions lock.
static
int check_event_provider(struct lttng_kernel_probe_desc *desc)
{
- int i;
+ int i, mismatch = 0;
size_t provider_name_len;
provider_name_len = strnlen(desc->provider_name,
LTTNG_KERNEL_ABI_SYM_NAME_LEN - 1);
for (i = 0; i < desc->nr_events; i++) {
- if (strncmp(desc->event_desc[i]->event_name,
- desc->provider_name,
- provider_name_len))
- return 0; /* provider mismatch */
/*
- * The event needs to contain at least provider name + _ +
+ * The event name needs to start with provider name + _ +
* one or more letter.
*/
- if (strlen(desc->event_desc[i]->event_name) <= provider_name_len + 1)
- return 0; /* provider mismatch */
- if (desc->event_desc[i]->event_name[provider_name_len] != '_')
- return 0; /* provider mismatch */
+ if (strncmp(desc->event_desc[i]->event_name, desc->provider_name, provider_name_len))
+ mismatch = 1;
+ else if (strlen(desc->event_desc[i]->event_name) <= provider_name_len + 1)
+ mismatch = 1;
+ else if (desc->event_desc[i]->event_name[provider_name_len] != '_')
+ mismatch = 1;
+
+ if (mismatch) {
+ printk(KERN_WARNING "LTTng: event provider mismatch: "
+ "The event name needs to start with provider "
+ "name + _ + one or more letter, "
+ "provider: %s, event name: %s\n",
+ desc->provider_name, desc->event_desc[i]->event_name);
+ return 0;
+ }
}
return 1;
}
return NULL;
}
-int lttng_probe_register(struct lttng_kernel_probe_desc *desc)
+int lttng_kernel_probe_register(struct lttng_kernel_probe_desc *desc)
{
int ret = 0;
lttng_unlock_sessions();
return ret;
}
-EXPORT_SYMBOL_GPL(lttng_probe_register);
+EXPORT_SYMBOL_GPL(lttng_kernel_probe_register);
-void lttng_probe_unregister(struct lttng_kernel_probe_desc *desc)
+void lttng_kernel_probe_unregister(struct lttng_kernel_probe_desc *desc)
{
lttng_lock_sessions();
if (!desc->lazy)
pr_debug("LTTng: just unregistered probe %s\n", desc->provider_name);
lttng_unlock_sessions();
}
-EXPORT_SYMBOL_GPL(lttng_probe_unregister);
+EXPORT_SYMBOL_GPL(lttng_kernel_probe_unregister);
/*
* TODO: this is O(nr_probes * nb_events), could be faster.