Add CPU hotplug notifier for ltt debugfs ABI, add pollwait exclusive wrapper
[lttng-modules.git] / ltt-events.c
index 2693dc2cad729dd63794fd70d8f21499c25edea5..40e8e459183efacae2744fcc6a6071bd9625e5b1 100644 (file)
@@ -4,6 +4,8 @@
  * Copyright 2010 (c) - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  *
  * Holds LTTng per-session event registry.
+ *
+ * Dual LGPL v2.1/GPL v2 license.
  */
 
 #include <linux/module.h>
@@ -167,7 +169,6 @@ struct ltt_channel *ltt_channel_create(struct ltt_session *session,
        if (!chan)
                goto nomem;
        chan->session = session;
-       init_waitqueue_head(&chan->notify_wait);
        chan->id = session->free_chan_id++;
        /*
         * Note: the channel creation op already writes into the packet
@@ -383,7 +384,7 @@ int lttng_metadata_printf(struct ltt_session *session,
                 * we need to bail out after timeout or being
                 * interrupted.
                 */
-               waitret = wait_event_interruptible_timeout(*chan->ops->get_reader_wait_queue(chan),
+               waitret = wait_event_interruptible_timeout(*chan->ops->get_reader_wait_queue(chan->chan),
                        ({
                                ret = chan->ops->event_reserve(&ctx, 0);
                                ret != -ENOBUFS || !ret;
@@ -397,7 +398,7 @@ int lttng_metadata_printf(struct ltt_session *session,
                                ret = waitret;
                        goto end;
                }
-               chan->ops->event_write(&ctx, &str[pos], len);
+               chan->ops->event_write(&ctx, &str[pos], reserve_len);
                chan->ops->event_commit(&ctx);
        }
 end:
@@ -470,7 +471,6 @@ int _ltt_field_statedump(struct ltt_session *session,
                length_type = &field->type.u.sequence.length_type;
                ret = lttng_metadata_printf(session,
                        "               integer { size = %u; align = %u; signed = %u; encoding = %s; base = %u;%s } __%s_length;\n",
-                       "               integer { size = %u; align = %u; signed = %u; encoding = %s; base = %u;%s } %s[ __%s_length ];\n",
                        length_type->u.basic.integer.size,
                        (unsigned int) length_type->u.basic.integer.alignment,
                        length_type->u.basic.integer.signedness,
@@ -485,7 +485,12 @@ int _ltt_field_statedump(struct ltt_session *session,
 #else
                        length_type->u.basic.integer.reverse_byte_order ? " byte_order = be;" : "",
 #endif
-                       field->name,
+                       field->name);
+               if (ret)
+                       return ret;
+
+               ret = lttng_metadata_printf(session,
+                       "               integer { size = %u; align = %u; signed = %u; encoding = %s; base = %u;%s } %s[ __%s_length ];\n",
                        elem_type->u.basic.integer.size,
                        (unsigned int) elem_type->u.basic.integer.alignment,
                        elem_type->u.basic.integer.signedness,
@@ -501,8 +506,7 @@ int _ltt_field_statedump(struct ltt_session *session,
                        elem_type->u.basic.integer.reverse_byte_order ? " byte_order = be;" : "",
 #endif
                        field->name,
-                       field->name
-                       );
+                       field->name);
                break;
        }
 
This page took 0.023182 seconds and 4 git commands to generate.