From: Lars-Peter Clausen <lars@xxxxxxxxxx> Before activating a buffer make sure that at least one channel is enabled. Activating a buffer with 0 channels enabled doesn't make too much sense and disallowing this case makes sure that individual driver don't have to add special case code to handle it. Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> --- * Found this relic-patch in our tree, from 6 years ago: https://github.com/analogdevicesinc/linux/commit/6d680e49d459c It got moved around a bit, and this is the current form in the ADI tree. So, this is also a bit of an RFC, but if the idea is valid, maybe it's worth considering upstream. I don't know of any arguments against it, but I could be surprised. drivers/iio/industrialio-buffer.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/iio/industrialio-buffer.c b/drivers/iio/industrialio-buffer.c index 4ada5592aa2b..f222a118d0d3 100644 --- a/drivers/iio/industrialio-buffer.c +++ b/drivers/iio/industrialio-buffer.c @@ -1031,6 +1031,12 @@ static int __iio_update_buffers(struct iio_dev *indio_dev, return ret; if (insert_buffer) { + if (bitmap_empty(insert_buffer->scan_mask, + indio_dev->masklength)) { + ret = -EINVAL; + goto err_free_config; + } + ret = iio_buffer_request_update(indio_dev, insert_buffer); if (ret) goto err_free_config; -- 2.20.1