- probe_desc->event_desc[i]->name);
- }
- }
- }
-}
-
-static
-void lttng_create_tracepoint_event_notifier_if_missing(struct lttng_event_notifier_enabler *event_notifier_enabler)
-{
- struct lttng_event_notifier_group *event_notifier_group = event_notifier_enabler->group;
- struct lttng_probe_desc *probe_desc;
- const struct lttng_event_desc *desc;
- int i;
- struct list_head *probe_list;
-
- probe_list = lttng_get_probe_list_head();
- /*
- * For each probe event, if we find that a probe event matches
- * our enabler, create an associated lttng_event_notifier if not
- * already present.
- */
- list_for_each_entry(probe_desc, probe_list, head) {
- for (i = 0; i < probe_desc->nr_events; i++) {
- int found = 0;
- struct hlist_head *head;
- struct lttng_event_notifier *event_notifier;
-
- desc = probe_desc->event_desc[i];
- if (!lttng_desc_match_enabler(desc,
- lttng_event_notifier_enabler_as_enabler(event_notifier_enabler)))
- continue;
-
- /*
- * Check if already created.
- */
- head = utils_borrow_hash_table_bucket(
- event_notifier_group->event_notifiers_ht.table,
- LTTNG_EVENT_NOTIFIER_HT_SIZE, desc->name);
- lttng_hlist_for_each_entry(event_notifier, head, hlist) {
- if (event_notifier->desc == desc
- && event_notifier->user_token == event_notifier_enabler->base.user_token)
- found = 1;
- }
- if (found)
- continue;
-
- /*
- * We need to create a event_notifier for this event probe.
- */
- event_notifier = _lttng_event_notifier_create(desc,
- event_notifier_enabler->base.user_token,
- event_notifier_group, NULL, NULL,
- LTTNG_KERNEL_TRACEPOINT);
- if (IS_ERR(event_notifier)) {
- printk(KERN_INFO "Unable to create event_notifier %s\n",
- probe_desc->event_desc[i]->name);