- if (config->alloc == RING_BUFFER_ALLOC_PER_CPU)
- buf = per_cpu_ptr(chan->backend.buf, ctx->cpu);
- else
- buf = chan->backend.buf;
- if (atomic_read(&buf->record_disabled))
+ if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
+ ctx->reserve_cpu = lttng_ust_get_cpu();
+ buf = shmp(handle, chan->backend.buf[ctx->reserve_cpu].shmp);
+ } else {
+ buf = shmp(handle, chan->backend.buf[0].shmp);
+ }
+ if (caa_unlikely(!buf))
+ return -EIO;
+ if (caa_unlikely(uatomic_read(&buf->record_disabled)))