static int iio_request_update_kfifo(struct iio_buffer *r) { int ret = 0; struct iio_kfifo *buf = iio_to_kfifo(r); if (!buf->update_needed) goto error_ret; kfifo_free(&buf->kf); ret = __iio_allocate_kfifo(buf, buf->buffer.bytes_per_datum, buf->buffer.length); error_ret: return ret; }
static int iio_request_update_kfifo(struct iio_buffer *r) { int ret = 0; struct iio_kfifo *buf = iio_to_kfifo(r); mutex_lock(&buf->user_lock); if (buf->update_needed) { kfifo_free(&buf->kf); ret = __iio_allocate_kfifo(buf, buf->buffer.bytes_per_datum, buf->buffer.length); buf->update_needed = false; } else { kfifo_reset_out(&buf->kf); } mutex_unlock(&buf->user_lock); return ret; }