| From bee40f1e0b0376db1b5e96b17250b352e25308bb Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 7 Apr 2021 11:52:03 +0200 |
| Subject: tty: fix return value for unsupported termiox ioctls |
| |
| From: Johan Hovold <johan@kernel.org> |
| |
| [ Upstream commit 8871de06ff78e9333d86c87d7071452b690e7c9b ] |
| |
| Drivers should return -ENOTTY ("Inappropriate I/O control operation") |
| when an ioctl isn't supported, while -EINVAL is used for invalid |
| arguments. |
| |
| Support for termiox was added by commit 1d65b4a088de ("tty: Add |
| termiox") in 2008 but no driver support ever followed and it was |
| recently ripped out by commit e0efb3168d34 ("tty: Remove dead termiox |
| code"). |
| |
| Fix the return value for the unsupported termiox ioctls, which have |
| always returned -EINVAL, by explicitly returning -ENOTTY rather than |
| removing them completely and falling back to the default unrecognised- |
| ioctl handling. |
| |
| Fixes: 1d65b4a088de ("tty: Add termiox") |
| Signed-off-by: Johan Hovold <johan@kernel.org> |
| Link: https://lore.kernel.org/r/20210407095208.31838-4-johan@kernel.org |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/tty/tty_ioctl.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/tty/tty_ioctl.c b/drivers/tty/tty_ioctl.c |
| index 4de1c6ddb8ff..803da2d111c8 100644 |
| --- a/drivers/tty/tty_ioctl.c |
| +++ b/drivers/tty/tty_ioctl.c |
| @@ -774,8 +774,8 @@ int tty_mode_ioctl(struct tty_struct *tty, struct file *file, |
| case TCSETX: |
| case TCSETXW: |
| case TCSETXF: |
| - return -EINVAL; |
| -#endif |
| + return -ENOTTY; |
| +#endif |
| case TIOCGSOFTCAR: |
| copy_termios(real_tty, &kterm); |
| ret = put_user((kterm.c_cflag & CLOCAL) ? 1 : 0, |
| -- |
| 2.30.2 |
| |