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: 8dedcc3eee ("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>
This commit is contained in:
Alexandru Ardelean 2020-11-17 11:51:54 +02:00 committed by Jonathan Cameron
parent ee8caea0c1
commit 74d826da38
1 changed files with 3 additions and 0 deletions

View File

@ -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);