X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Flttng-events.c;h=a144f544c52540170ea0e9478c263780d05b856d;hb=c3eddb2e2effc01eee7bc778c21431bf45a8ffdc;hp=3569be68d1151077182b60b996905538b9f10cea;hpb=966ad25338569b3afbc1e900ec791eba54c67c9b;p=lttng-modules.git diff --git a/src/lttng-events.c b/src/lttng-events.c index 3569be68..a144f544 100644 --- a/src/lttng-events.c +++ b/src/lttng-events.c @@ -949,6 +949,8 @@ struct lttng_event *_lttng_event_create(struct lttng_channel *chan, event_return->enabled = 0; event_return->registered = 1; event_return->instrumentation = itype; + INIT_LIST_HEAD(&event_return->filter_bytecode_runtime_head); + INIT_LIST_HEAD(&event_return->enablers_ref_head); /* * Populate lttng_event structure before kretprobe registration. */ @@ -1526,6 +1528,8 @@ void _lttng_event_destroy(struct lttng_event *event) static void _lttng_event_notifier_destroy(struct lttng_event_notifier *event_notifier) { + struct lttng_enabler_ref *enabler_ref, *tmp_enabler_ref; + switch (event_notifier->instrumentation) { case LTTNG_KERNEL_TRACEPOINT: lttng_event_desc_put(event_notifier->desc); @@ -1547,6 +1551,11 @@ void _lttng_event_notifier_destroy(struct lttng_event_notifier *event_notifier) WARN_ON_ONCE(1); } list_del(&event_notifier->list); + lttng_free_event_notifier_filter_runtime(event_notifier); + /* Free event enabler refs */ + list_for_each_entry_safe(enabler_ref, tmp_enabler_ref, + &event_notifier->enablers_ref_head, node) + kfree(enabler_ref); kmem_cache_free(event_notifier_cache, event_notifier); } @@ -2759,6 +2768,8 @@ void lttng_event_notifier_group_sync_enablers(struct lttng_event_notifier_group list_for_each_entry(runtime, &event_notifier->capture_bytecode_runtime_head, node) lttng_bytecode_capture_sync_state(runtime); + + WRITE_ONCE(event_notifier->eval_capture, !!event_notifier->num_captures); } }