• Lars-Peter Clausen's avatar
    iio: buffer: Don't allow buffers without any channels enabled to be activated · b7329249
    Lars-Peter Clausen authored
    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.
    
    Currently, without this patch enabling a buffer is possible and no error is
    produced. With this patch -EINVAL is returned.
    
    An example of execution with this patch and some instrumented print-code:
       root@analog:~# cd /sys/bus/iio/devices/iio\:device3/buffer
       root@analog:/sys/bus/iio/devices/iio:device3/buffer# echo 1 > enable
       0: iio_verify_update 748 indio_dev->masklength 2 *insert_buffer->scan_mask 00000000
       1: iio_verify_update 753
       2:__iio_update_buffers 1115 ret -22
       3: iio_buffer_store_enable 1241 ret -22
       -bash: echo: write error: Invalid argument
    1, 2 & 3 are exit-error paths. 0 the first print in iio_verify_update()
    rergardless of error path.
    
    Without this patch (and same instrumented print-code):
       root@analog:~# cd /sys/bus/iio/devices/iio\:device3/buffer
       root@analog:/sys/bus/iio/devices/iio:device3/buffer# echo 1 > enable
       0: iio_verify_update 748 indio_dev->masklength 2 *insert_buffer->scan_mask 00000000
       root@analog:/sys/bus/iio/devices/iio:device3/buffer#
    Buffer is enabled with no error.
    
    Note from Jonathan: Probably not suitable for automatic application to stable.
    This has been there from the very start.  It tidies up an odd corner
    case but won't effect any 'real' users.
    
    Fixes: 84b36ce5 ("staging:iio: Add support for multiple buffers")
    Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: default avatarAlexandru Ardelean <alexandru.ardelean@analog.com>
    Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    b7329249
industrialio-buffer.c 36.7 KB