//ust// }
static CDS_LIST_HEAD(ltt_transport_list);
-
+/* transport mutex, nests inside traces mutex (ltt_lock_traces) */
+static DEFINE_MUTEX(ltt_transport_mutex);
/**
* ltt_transport_register - LTT transport registration
* @transport: transport structure
*/
//ust// vmalloc_sync_all();
- ltt_lock_traces();
+ pthread_mutex_lock(<t_transport_mutex);
cds_list_add_tail(&transport->node, <t_transport_list);
- ltt_unlock_traces();
+ pthread_mutex_unlock(<t_transport_mutex);
}
/**
*/
void ltt_transport_unregister(struct ltt_transport *transport)
{
- ltt_lock_traces();
+ pthread_mutex_lock(<t_transport_mutex);
cds_list_del(&transport->node);
- ltt_unlock_traces();
+ pthread_mutex_unlock(<t_transport_mutex);
}
static inline int is_channel_overwrite(enum ltt_channels chan,
goto traces_error;
}
+ pthread_mutex_lock(<t_transport_mutex);
cds_list_for_each_entry(tran_iter, <t_transport_list, node) {
if (!strcmp(tran_iter->name, trace_type)) {
transport = tran_iter;
break;
}
}
+ pthread_mutex_unlock(<t_transport_mutex);
+
if (!transport) {
ERR("Transport %s is not present", trace_type);
err = -EINVAL;