iio: percolate error if event fd fails
authorLinus Walleij <linus.walleij@linaro.org>
Tue, 11 Aug 2015 09:56:40 +0000 (11:56 +0200)
committerJonathan Cameron <jic23@kernel.org>
Sun, 16 Aug 2015 09:51:26 +0000 (10:51 +0100)
This makes the error from iio_event_getfd() percolate up
to userspace properly so we can know for sure there is no
events on this device (-ENODEV returned). Before this patch
we would bail out looking for the unsupported events on the
erroneous (negative) file descriptor.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/industrialio-core.c

index b3fcc2c449d80e2cb1fdfe95dc6ca200d36931e3..b347524d1b6d96d701ee6f894e22ffdfe5e0287e 100644 (file)
@@ -1153,6 +1153,8 @@ static long iio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
 
        if (cmd == IIO_GET_EVENT_FD_IOCTL) {
                fd = iio_event_getfd(indio_dev);
+               if (fd < 0)
+                       return fd;
                if (copy_to_user(ip, &fd, sizeof(fd)))
                        return -EFAULT;
                return 0;