iio: kfifo: mask flags without zero-check in devm_iio_kfifo_buffer_setup()
authorAlexandru Ardelean <ardeleanalex@gmail.com>
Sat, 6 Mar 2021 16:28:34 +0000 (18:28 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Thu, 25 Mar 2021 19:13:49 +0000 (19:13 +0000)
As pointed by Lars, this doesn't require a zero-check. Also, while looking
at this a little closer at it (again), the masking can be done later, as
there is a zero-check for 'mode_flags' anyway, which returns -EINVAL. And
we only need the 'mode_flags' later in the logic.

This change is more of a tweak.

Fixes: e36db6a06937 ("iio: kfifo: add devm_iio_kfifo_buffer_setup() helper")
Cc: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
Link: https://lore.kernel.org/r/20210306162834.7339-1-ardeleanalex@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/buffer/kfifo_buf.c

index 34289ce..4ecfa0e 100644 (file)
@@ -225,9 +225,6 @@ int devm_iio_kfifo_buffer_setup(struct device *dev,
 {
        struct iio_buffer *buffer;
 
-       if (mode_flags)
-               mode_flags &= kfifo_access_funcs.modes;
-
        if (!mode_flags)
                return -EINVAL;
 
@@ -235,6 +232,8 @@ int devm_iio_kfifo_buffer_setup(struct device *dev,
        if (!buffer)
                return -ENOMEM;
 
+       mode_flags &= kfifo_access_funcs.modes;
+
        indio_dev->modes |= mode_flags;
        indio_dev->setup_ops = setup_ops;