drivers:tty:fix up ENOIOCTLCMD error handling
authorWanlong Gao <gaowanlong@cn.fujitsu.com>
Mon, 27 Aug 2012 07:23:12 +0000 (15:23 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Sep 2012 19:41:57 +0000 (12:41 -0700)
At commit 07d106d0, Linus pointed out that ENOIOCTLCMD should be
translated as ENOTTY to user mode.
For example:
fd = open("/dev/tty", O_RDWR);
ioctl(fd, -1, &argp);

then the errno should be ENOTTY but not EINVAL.

Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
Acked-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/tty_io.c

index 41e42f13a2141f2d1472e981763afd28d446aaf9..d3bf91a293038b110bddcc51774303bae9f21ddd 100644 (file)
@@ -2774,7 +2774,7 @@ long tty_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
        if (ld->ops->ioctl) {
                retval = ld->ops->ioctl(tty, file, cmd, arg);
                if (retval == -ENOIOCTLCMD)
-                       retval = -EINVAL;
+                       retval = -ENOTTY;
        }
        tty_ldisc_deref(ld);
        return retval;