X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fkernel.c;h=39006ab2f37b508107fb468a427debb7d82bb566;hp=1aad5263e0b8ae63a75c2a9b9fb0c3a3d4db5906;hb=bd29c13d4c9296705a4444404a69c0557e5b8cb9;hpb=3b870559a62e8f74a8793a6a23b9445346fe9fdf diff --git a/src/bin/lttng-sessiond/kernel.c b/src/bin/lttng-sessiond/kernel.c index 1aad5263e..39006ab2f 100644 --- a/src/bin/lttng-sessiond/kernel.c +++ b/src/bin/lttng-sessiond/kernel.c @@ -25,6 +25,7 @@ #include #include +#include #include "kernel.h" #include "kern-modules.h" @@ -195,7 +196,13 @@ int kernel_create_event(struct lttng_event *ev, ret = kernctl_create_event(channel->fd, event->event); if (ret < 0) { - if (errno != EEXIST) { + switch (errno) { + case EEXIST: + break; + case ENOSYS: + WARN("Event type not implemented"); + break; + default: PERROR("create event ioctl"); } ret = -errno; @@ -290,8 +297,15 @@ int kernel_enable_event(struct ltt_kernel_event *event) int ret; ret = kernctl_enable(event->fd); - if (ret < 0 && errno != EEXIST) { - PERROR("enable kernel event"); + if (ret < 0) { + switch (errno) { + case EEXIST: + ret = LTTCOMM_KERN_EVENT_EXIST; + break; + default: + PERROR("enable kernel event"); + break; + } goto error; } @@ -312,8 +326,15 @@ int kernel_disable_event(struct ltt_kernel_event *event) int ret; ret = kernctl_disable(event->fd); - if (ret < 0 && errno != EEXIST) { - PERROR("disable kernel event"); + if (ret < 0) { + switch (errno) { + case EEXIST: + ret = LTTCOMM_KERN_EVENT_EXIST; + break; + default: + PERROR("disable kernel event"); + break; + } goto error; }