diff options
author | Jiri Slaby <jslaby@suse.cz> | 2021-06-18 09:14:38 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-06-18 14:10:00 +0300 |
commit | 389fc82e475be8f6c1745f804470bea5e3bf7dc1 (patch) | |
tree | 2104439b98e79d48363f14c1650ded2dc24c6a15 /drivers/tty/mxser.c | |
parent | 95b3ea4c6f45f3172dae29f303579743c2aa303d (diff) | |
download | linux-389fc82e475be8f6c1745f804470bea5e3bf7dc1.tar.xz |
mxser: don't allocate MXSER_PORTS + 1
The MXSER_PORTS's tty_device is never registered and neither its
tty_port instance exists. Hence, it's quite pointless to allocate it.
It used to be used for global information fetches via ioctls. We have
just removed these as non-existent tty_device+tty_port was exactly the
reason to remove the ioctls.
It would be peculiar to add this "virtual" port as we require a backing
tty_port since commit ecbbfd44a08f (TTY: move tty buffers to tty_port)
in 2012.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20210618061516.662-33-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/mxser.c')
-rw-r--r-- | drivers/tty/mxser.c | 23 |
1 files changed, 3 insertions, 20 deletions
diff --git a/drivers/tty/mxser.c b/drivers/tty/mxser.c index d354c80083fd..007137c3b5c9 100644 --- a/drivers/tty/mxser.c +++ b/drivers/tty/mxser.c @@ -1004,11 +1004,8 @@ static void mxser_shutdown_port(struct tty_port *port) static int mxser_open(struct tty_struct *tty, struct file *filp) { struct mxser_port *info; - int line; + int line = tty->index; - line = tty->index; - if (line == MXSER_PORTS) - return 0; info = &mxser_boards[line / MXSER_PORTS_PER_BOARD].ports[line % MXSER_PORTS_PER_BOARD]; if (!info->ioaddr) return -ENODEV; @@ -1077,7 +1074,7 @@ static void mxser_close(struct tty_struct *tty, struct file *filp) struct mxser_port *info = tty->driver_data; struct tty_port *port = &info->port; - if (tty->index == MXSER_PORTS || info == NULL) + if (info == NULL) return; if (tty_port_close_start(port, tty, filp) == 0) return; @@ -1216,9 +1213,6 @@ static int mxser_get_serial_info(struct tty_struct *tty, struct tty_port *port = &info->port; unsigned int closing_wait, close_delay; - if (tty->index == MXSER_PORTS) - return -ENOTTY; - mutex_lock(&port->mutex); close_delay = jiffies_to_msecs(info->port.close_delay) / 10; @@ -1249,8 +1243,6 @@ static int mxser_set_serial_info(struct tty_struct *tty, unsigned int flags, close_delay, closing_wait; int retval = 0; - if (tty->index == MXSER_PORTS) - return -ENOTTY; if (tty_io_error(tty)) return -EIO; @@ -1354,9 +1346,6 @@ static int mxser_tiocmget(struct tty_struct *tty) unsigned char control, status; unsigned long flags; - - if (tty->index == MXSER_PORTS) - return -ENOIOCTLCMD; if (tty_io_error(tty)) return -EIO; @@ -1381,9 +1370,6 @@ static int mxser_tiocmset(struct tty_struct *tty, struct mxser_port *info = tty->driver_data; unsigned long flags; - - if (tty->index == MXSER_PORTS) - return -ENOIOCTLCMD; if (tty_io_error(tty)) return -EIO; @@ -1433,9 +1419,6 @@ static int mxser_ioctl(struct tty_struct *tty, unsigned long flags; void __user *argp = (void __user *)arg; - if (tty->index == MXSER_PORTS) - return -ENOTTY; - if (cmd == MOXA_SET_OP_MODE || cmd == MOXA_GET_OP_MODE) { int p; unsigned long opmode; @@ -2211,7 +2194,7 @@ static int __init mxser_module_init(void) { int retval; - mxvar_sdriver = alloc_tty_driver(MXSER_PORTS + 1); + mxvar_sdriver = alloc_tty_driver(MXSER_PORTS); if (!mxvar_sdriver) return -ENOMEM; |