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: ae9886d6aa29 ("iio: kfifo: add devm_iio_kfifo_buffer_setup() helper") Cc: Lars-Peter Clausen <lars@xxxxxxxxxx> Signed-off-by: Alexandru Ardelean <ardeleanalex@xxxxxxxxx> --- Apologies for the late-ness of this. I don't know if this makes sense to squash in the original, or to have as a fix commit. It is a bit messy now that the original is committed into the tree, and now we're fixing/tweaking it. drivers/iio/buffer/kfifo_buf.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/iio/buffer/kfifo_buf.c b/drivers/iio/buffer/kfifo_buf.c index e8a434f84778..8e3a1a9e495c 100644 --- a/drivers/iio/buffer/kfifo_buf.c +++ b/drivers/iio/buffer/kfifo_buf.c @@ -275,9 +275,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; @@ -285,6 +282,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; -- 2.25.1