X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=ltt-events.c;h=184f2daa145caf573ff522bfd006aa3b8a8eaaca;hb=5dbbdb433f181be8b3c30e8cd03191b5408614ca;hp=c2a6a9206304f6e5a06b4b30e55a465d0f70f589;hpb=dda6a249b86e7f06e82fb18a26e981522d9e852d;p=lttng-modules.git diff --git a/ltt-events.c b/ltt-events.c index c2a6a920..184f2daa 100644 --- a/ltt-events.c +++ b/ltt-events.c @@ -49,7 +49,7 @@ void ltt_session_destroy(struct ltt_session *session) int ret; mutex_lock(&sessions_mutex); - session->active = 0; + ACCESS_ONCE(session->active) = 0; list_for_each_entry(event, &session->events, list) { ret = _ltt_event_unregister(event); WARN_ON(ret); @@ -73,7 +73,7 @@ int ltt_session_start(struct ltt_session *session) ret = -EBUSY; goto end; } - session->active = 1; + ACCESS_ONCE(session->active) = 1; synchronize_trace(); /* Wait for in-flight events to complete */ end: mutex_unlock(&sessions_mutex); @@ -89,7 +89,7 @@ int ltt_session_stop(struct ltt_session *session) ret = -EBUSY; goto end; } - session->active = 0; + ACCESS_ONCE(session->active) = 0; synchronize_trace(); /* Wait for in-flight events to complete */ end: mutex_unlock(&sessions_mutex); @@ -108,21 +108,20 @@ static struct ltt_transport *ltt_transport_find(char *name) } struct ltt_channel *ltt_channel_create(struct ltt_session *session, - int overwrite, void *buf_addr, + const char *transport_name, + void *buf_addr, size_t subbuf_size, size_t num_subbuf, unsigned int switch_timer_interval, unsigned int read_timer_interval) { struct ltt_channel *chan; struct ltt_transport *transport; - char *transport_name; mutex_lock(&sessions_mutex); if (session->active) { printk(KERN_WARNING "LTTng refusing to add channel to active session\n"); goto active; /* Refuse to add channel to active session */ } - transport_name = overwrite ? "relay-overwrite" : "relay-discard"; transport = ltt_transport_find(transport_name); if (!transport) { printk(KERN_WARNING "LTTng transport %s not found\n",