X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttng-events.c;h=053f125fa313a56d048fc5c0cd4c5ccff8e6526a;hb=389d70703bbd804c4f000d89ef2efbe169c6028f;hp=c103c6ed0d8a53392afd21352734587819bb3d2e;hpb=07dfc1d0e4b093ad02682499a702dc11e54e8302;p=lttng-modules.git diff --git a/lttng-events.c b/lttng-events.c index c103c6ed..053f125f 100644 --- a/lttng-events.c +++ b/lttng-events.c @@ -20,6 +20,12 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +/* + * This page_alloc.h wrapper needs to be included before gfpflags.h because it + * overrides a function with a define. + */ +#include "wrapper/page_alloc.h" + #include #include #include @@ -492,7 +498,7 @@ struct lttng_event *_lttng_event_create(struct lttng_channel *chan, name_len = strlen(event_name); hash = jhash(event_name, name_len, 0); head = &session->events_ht.table[hash & (LTTNG_EVENT_HT_SIZE - 1)]; - hlist_for_each_entry(event, head, hlist) { + lttng_hlist_for_each_entry(event, head, hlist) { WARN_ON_ONCE(!event->desc); if (!strncmp(event->desc->name, event_name, LTTNG_KERNEL_SYM_NAME_LEN - 1) @@ -671,7 +677,7 @@ static void register_event(struct lttng_event *event) { const struct lttng_event_desc *desc; - int ret; + int ret = -EINVAL; if (event->registered) return; @@ -1131,7 +1137,7 @@ void lttng_create_tracepoint_if_missing(struct lttng_enabler *enabler) */ hash = jhash(event_name, name_len, 0); head = &session->events_ht.table[hash & (LTTNG_EVENT_HT_SIZE - 1)]; - hlist_for_each_entry(event, head, hlist) { + lttng_hlist_for_each_entry(event, head, hlist) { if (event->desc == desc && event->chan == enabler->chan) found = 1; @@ -1218,6 +1224,11 @@ int lttng_enabler_ref_events(struct lttng_enabler *enabler) &event->enablers_ref_head); } + /* + * Link filter bytecodes if not linked yet. + */ + lttng_enabler_event_link_bytecode(event, enabler); + /* TODO: merge event context. */ } return 0; @@ -1252,7 +1263,7 @@ struct lttng_enabler *lttng_enabler_create(enum lttng_enabler_type type, sizeof(enabler->event_param)); enabler->chan = chan; /* ctx left NULL */ - enabler->enabled = 1; + enabler->enabled = 0; enabler->evtype = LTTNG_TYPE_ENABLER; mutex_lock(&sessions_mutex); list_add(&enabler->node, &enabler->chan->session->enablers_head); @@ -1404,9 +1415,8 @@ void lttng_session_sync_enablers(struct lttng_session *session) /* Enable filters */ list_for_each_entry(runtime, - &event->bytecode_runtime_head, node) { + &event->bytecode_runtime_head, node) lttng_filter_sync_state(runtime); - } } } @@ -2111,7 +2121,9 @@ static int __init lttng_events_init(void) ret = wrapper_lttng_fixup_sig(THIS_MODULE); if (ret) return ret; - + ret = wrapper_get_pfnblock_flags_mask_init(); + if (ret) + return ret; ret = lttng_context_init(); if (ret) return ret;