mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-14 15:54:15 +08:00
iio: core: return ENODEV if ioctl is unknown
When the ioctl() mechanism was introduced in IIO core to centralize the registration of all ioctls in one place via commit8dedcc3eee
("iio: core: centralize ioctl() calls to the main chardev"), the return code was changed from ENODEV to EINVAL, when the ioctl code isn't known. This was done by accident. This change reverts back to the old behavior, where if the ioctl() code isn't known, ENODEV is returned (vs EINVAL). This was brought into perspective by this patch: https://lore.kernel.org/linux-iio/20210428150815.136150-1-paul@crapouillou.net/ Fixes:8dedcc3eee
("iio: core: centralize ioctl() calls to the main chardev") Signed-off-by: Alexandru Ardelean <aardelean@deviqon.com> Reviewed-by: Nuno Sá <nuno.sa@analog.com> Tested-by: Paul Cercueil <paul@crapouillou.net> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
901f84de0e
commit
af0670b0bf
@ -1778,7 +1778,6 @@ static long iio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
||||
if (!indio_dev->info)
|
||||
goto out_unlock;
|
||||
|
||||
ret = -EINVAL;
|
||||
list_for_each_entry(h, &iio_dev_opaque->ioctl_handlers, entry) {
|
||||
ret = h->ioctl(indio_dev, filp, cmd, arg);
|
||||
if (ret != IIO_IOCTL_UNHANDLED)
|
||||
@ -1786,7 +1785,7 @@ static long iio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
||||
}
|
||||
|
||||
if (ret == IIO_IOCTL_UNHANDLED)
|
||||
ret = -EINVAL;
|
||||
ret = -ENODEV;
|
||||
|
||||
out_unlock:
|
||||
mutex_unlock(&indio_dev->info_exist_lock);
|
||||
|
Loading…
Reference in New Issue
Block a user