aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/iio/industrialio-core.c
diff options
context:
space:
mode:
authorAlexandru Ardelean <alexandru.ardelean@analog.com>2020-11-17 11:51:54 +0200
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2020-11-21 16:48:23 +0000
commit74d826da3842ce893e943f9f23ddb7f07fc8d7fe (patch)
treec1c89697fa9f5d0becd9bc9883efa61ff97fd66e /drivers/iio/industrialio-core.c
parentiio: core: organize buffer file-ops in the order defined in the struct (diff)
downloadlinux-dev-74d826da3842ce893e943f9f23ddb7f07fc8d7fe.tar.xz
linux-dev-74d826da3842ce893e943f9f23ddb7f07fc8d7fe.zip
iio: core: return -EINVAL when no ioctl handler has been run
It seems that when this was tested the happy case was more tested. A few of the userspace apps rely on this returning negative error codes in case an ioctl() is not available. When running multiple ioctl() handlers or when calling an ioctl() that doesn't exist, IIO_IOCTL_UNHANDLED is returned. In that case -EINVAL should be returned. Fixes: 8dedcc3eee3a ("iio: core: centralize ioctl() calls to the main chardev") Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com> Link: https://lore.kernel.org/r/20201117095154.7189-1-alexandru.ardelean@analog.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'drivers/iio/industrialio-core.c')
-rw-r--r--drivers/iio/industrialio-core.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
index 89f9af12c8e6..7cae46f9bc0d 100644
--- a/drivers/iio/industrialio-core.c
+++ b/drivers/iio/industrialio-core.c
@@ -1743,6 +1743,9 @@ static long iio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
break;
}
+ if (ret == IIO_IOCTL_UNHANDLED)
+ ret = -EINVAL;
+
out_unlock:
mutex_unlock(&indio_dev->info_exist_lock);