+ DBG("Event %s created (fd: %d)", ev->name, event->fd);
+
+ return 0;
+
+free_event:
+ free(event);
+error:
+ return -1;
+}
+
+/*
+ * kernel_disable_event
+ *
+ * Disable a kernel event for a specific channel.
+ */
+int kernel_disable_event(char *event_name, struct ltt_kernel_channel *channel)
+{
+ int ret;
+ struct ltt_kernel_event *iter;
+
+ cds_list_for_each_entry(iter, &channel->events_list.head, list) {
+ if (strcmp(iter->event->name, event_name) == 0) {
+ ret = kernctl_disable(iter->fd);
+ if (ret < 0) {
+ perror("disable event ioctl");
+ goto error;
+ }
+
+ iter->enabled = 0;
+ DBG("Kernel event %s disabled (fd: %d)", iter->event->name, iter->fd);
+ break;
+ }
+ }