X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Flttng-syscalls.c;h=bf1f2b732217397cf3e489bdb3e5f260f24dc361;hb=1d303f6942646f60243dcf456ed886557472bc4b;hp=1a6a492431b2b2b8f943bd1594601ffa19a4c85c;hpb=15a00134a0c635b90c8932919e57ffc07515cd69;p=lttng-modules.git diff --git a/src/lttng-syscalls.c b/src/lttng-syscalls.c index 1a6a4924..bf1f2b73 100644 --- a/src/lttng-syscalls.c +++ b/src/lttng-syscalls.c @@ -568,9 +568,9 @@ void lttng_syscall_event_enabler_create_event(struct lttng_event_enabler_common if (!event_recorder_enabler) return; event = _lttng_kernel_event_create(&event_recorder_enabler->parent, desc); - WARN_ON_ONCE(!event || IS_ERR(event)); + WARN_ON_ONCE(IS_ERR(event)); lttng_event_enabler_destroy(&event_recorder_enabler->parent); - if (!event || IS_ERR(event)) { + if (IS_ERR(event)) { printk(KERN_INFO "Unable to create event recorder %s\n", desc->event_name); return; } @@ -618,9 +618,9 @@ void lttng_syscall_event_enabler_create_event(struct lttng_event_enabler_common &event_notifier_param, syscall_event_notifier_enabler->group); WARN_ON_ONCE(!event_notifier_enabler); event = _lttng_kernel_event_create(&event_notifier_enabler->parent, desc); - WARN_ON_ONCE(!event || IS_ERR(event)); + WARN_ON_ONCE(IS_ERR(event)); lttng_event_enabler_destroy(&event_notifier_enabler->parent); - if (!event || IS_ERR(event)) { + if (IS_ERR(event)) { printk(KERN_INFO "Unable to create event notifier %s\n", desc->event_name); return; } @@ -642,14 +642,15 @@ void lttng_syscall_event_enabler_create_matching_syscall_table_events(struct ltt const struct lttng_kernel_event_desc *desc; unsigned int i; - if (!IS_ENABLED(CONFIG_COMPAT) && (type == SC_TYPE_COMPAT_ENTRY || type == SC_TYPE_COMPAT_EXIT)) +#ifndef CONFIG_COMPAT + if (type == SC_TYPE_COMPAT_ENTRY || type == SC_TYPE_COMPAT_EXIT) return; - +#endif /* iterate over all syscall and create event that match */ for (i = 0; i < table_len; i++) { struct lttng_kernel_event_common_private *event_priv; struct hlist_head *head; - int found = 0; + bool found = false; desc = table[i].desc; if (!desc) { @@ -665,8 +666,10 @@ void lttng_syscall_event_enabler_create_matching_syscall_table_events(struct ltt */ head = utils_borrow_hash_table_bucket(events_ht->table, LTTNG_EVENT_HT_SIZE, desc->event_name); lttng_hlist_for_each_entry(event_priv, head, hlist_node) { - if (lttng_event_enabler_desc_match_event(syscall_event_enabler_common, desc, event_priv->pub)) - found = 1; + if (lttng_event_enabler_desc_match_event(syscall_event_enabler_common, desc, event_priv->pub)) { + found = true; + break; + } } if (found) continue; @@ -700,9 +703,10 @@ void create_unknown_syscall_event(struct lttng_event_enabler_common *event_enabl bool found = false; struct hlist_head *head; - if (!IS_ENABLED(CONFIG_COMPAT) && (type == SC_TYPE_COMPAT_ENTRY || type == SC_TYPE_COMPAT_EXIT)) +#ifndef CONFIG_COMPAT + if (type == SC_TYPE_COMPAT_ENTRY || type == SC_TYPE_COMPAT_EXIT) return; - +#endif /* * Considering that currently system calls can only be enabled on a per * name basis (or wildcard based on a name), unknown syscall events are @@ -741,8 +745,10 @@ void create_unknown_syscall_event(struct lttng_event_enabler_common *event_enabl */ head = utils_borrow_hash_table_bucket(events_ht->table, LTTNG_EVENT_HT_SIZE, desc->event_name); lttng_hlist_for_each_entry(event_priv, head, hlist_node) { - if (lttng_event_enabler_desc_match_event(event_enabler, desc, event_priv->pub)) + if (lttng_event_enabler_desc_match_event(event_enabler, desc, event_priv->pub)) { found = true; + break; + } } if (!found) lttng_syscall_event_enabler_create_event(event_enabler, desc, unknown_dispatch_list, type, -1U); @@ -815,8 +821,6 @@ int lttng_event_enabler_create_syscall_events_if_missing(struct lttng_event_enab return -ENOMEM; } - lttng_syscall_event_enabler_create_matching_events(syscall_event_enabler); - if (!syscall_table->sys_enter_registered) { ret = lttng_wrapper_tracepoint_probe_register("sys_enter", (void *) syscall_entry_event_probe, syscall_table); @@ -835,6 +839,8 @@ int lttng_event_enabler_create_syscall_events_if_missing(struct lttng_event_enab syscall_table->sys_exit_registered = 1; } + lttng_syscall_event_enabler_create_matching_events(syscall_event_enabler); + return ret; }