* Dual LGPL v2.1/GPL v2 license.
*/
+#define _GNU_SOURCE
#include <urcu/arch.h>
-
-#include "lttng/core.h"
+#include <limits.h>
#include <lttng/ringbuffer-config.h>
#include "vatomic.h"
/*
* Make sure the number of subbuffers and subbuffer size are power of 2.
*/
- CHAN_WARN_ON(chanb, hweight32(subbuf_size) != 1);
- CHAN_WARN_ON(chanb, hweight32(num_subbuf) != 1);
+ if (hweight32(subbuf_size) != 1)
+ return -EINVAL;
+ if (hweight32(num_subbuf) != 1)
+ return -EINVAL;
ret = subbuffer_id_check_index(config, num_subbuf);
if (ret)
buf = shmp(handle, chanb->buf[0].shmp);
if (!buf)
goto end;
+ set_shmp(buf->self, chanb->buf[0].shmp._ref);
ret = lib_ring_buffer_create(buf, chanb, -1,
handle, shmobj);
if (ret)