- const struct lib_ring_buffer_config *config = chanb->config;
- unsigned int i;
-
- if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
- for_each_possible_cpu(i) {
- struct lib_ring_buffer *buf = shmp(handle, chanb->buf[i].shmp);
-
- if (!buf->backend.allocated)
- continue;
- lib_ring_buffer_free(buf, handle);
- }
- } else {
- struct lib_ring_buffer *buf = shmp(handle, chanb->buf[0].shmp);
-
- CHAN_WARN_ON(chanb, !buf->backend.allocated);
- lib_ring_buffer_free(buf, handle);
- }
- /* We only free the buffer data upon shm teardown */