X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Flttng-abi.c;h=c0ab0a488d7cade60defda6404badfc2e7061059;hb=c3fb484e598a4c08aa096901b611af7311ad77ca;hp=533b5fb4a6083c12e01055a632ff005b1dfefb55;hpb=4e252d1e24585eddf32ffbab53c68ed44d4a7fc8;p=lttng-modules.git diff --git a/src/lttng-abi.c b/src/lttng-abi.c index 533b5fb4..c0ab0a48 100644 --- a/src/lttng-abi.c +++ b/src/lttng-abi.c @@ -1912,7 +1912,7 @@ int lttng_abi_create_event(struct file *channel_file, lttng_fallthrough; case LTTNG_KERNEL_ABI_UPROBE: { - struct lttng_kernel_event_recorder *event; + struct lttng_kernel_event_common *event; struct lttng_event_recorder_enabler *event_enabler; event_enabler = lttng_event_recorder_enabler_create(LTTNG_ENABLER_FORMAT_NAME, @@ -1925,14 +1925,14 @@ int lttng_abi_create_event(struct file *channel_file, * We tolerate no failure path after event creation. It * will stay invariant for the rest of the session. */ - event = lttng_kernel_event_recorder_create(event_enabler, NULL); - WARN_ON_ONCE(!event); + event = lttng_kernel_event_create(&event_enabler->parent, NULL); + WARN_ON_ONCE(IS_ERR(event)); lttng_event_enabler_destroy(&event_enabler->parent); if (IS_ERR(event)) { ret = PTR_ERR(event); goto event_error; } - priv = event; + priv = container_of(event, struct lttng_kernel_event_recorder, parent); break; } @@ -2132,15 +2132,17 @@ int lttng_abi_create_event_notifier(struct file *event_notifier_group_file, * we create the special star globbing enabler. */ enabler = lttng_event_notifier_enabler_create( - event_notifier_group, LTTNG_ENABLER_FORMAT_STAR_GLOB, - event_notifier_param); + event_notifier_param, + event_notifier_group); } else { enabler = lttng_event_notifier_enabler_create( - event_notifier_group, LTTNG_ENABLER_FORMAT_NAME, - event_notifier_param); + event_notifier_param, + event_notifier_group); } + if (enabler) + lttng_event_notifier_enabler_group_add(event_notifier_group, enabler); priv = enabler; break; } @@ -2151,24 +2153,23 @@ int lttng_abi_create_event_notifier(struct file *event_notifier_group_file, lttng_fallthrough; case LTTNG_KERNEL_ABI_UPROBE: { - struct lttng_kernel_event_notifier *event_notifier; + struct lttng_kernel_event_common *event; + struct lttng_event_notifier_enabler *event_notifier_enabler; - /* - * We tolerate no failure path after event notifier creation. - * It will stay invariant for the rest of the session. - */ - event_notifier = lttng_event_notifier_create(NULL, - event_notifier_param->event.token, - event_notifier_param->error_counter_index, - event_notifier_group, - event_notifier_param, - event_notifier_param->event.instrumentation); - WARN_ON_ONCE(!event_notifier); - if (IS_ERR(event_notifier)) { - ret = PTR_ERR(event_notifier); + event_notifier_enabler = lttng_event_notifier_enabler_create(LTTNG_ENABLER_FORMAT_NAME, + event_notifier_param, event_notifier_group); + if (!event_notifier_enabler) { + ret = -ENOMEM; + goto event_notifier_error; + } + event = lttng_kernel_event_create(&event_notifier_enabler->parent, NULL); + WARN_ON_ONCE(IS_ERR(event)); + lttng_event_enabler_destroy(&event_notifier_enabler->parent); + if (IS_ERR(event)) { + ret = PTR_ERR(event); goto event_notifier_error; } - priv = event_notifier; + priv = container_of(event, struct lttng_kernel_event_notifier, parent); break; } @@ -2532,7 +2533,7 @@ old_ctx_end: case LTTNG_KERNEL_ABI_DISABLE: return lttng_channel_disable(&channel->parent); case LTTNG_KERNEL_ABI_SYSCALL_MASK: - return lttng_channel_syscall_mask(channel, + return lttng_syscall_table_get_active_mask(&channel->priv->parent.syscall_table, (struct lttng_kernel_abi_syscall_mask __user *) arg); default: return -ENOIOCTLCMD;