amiserial: simplify rs_open
authorJiri Slaby <jslaby@suse.cz>
Wed, 14 Jul 2021 09:13:08 +0000 (11:13 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 21 Jul 2021 10:49:50 +0000 (12:49 +0200)
tty->port is already set when rs_open is called given we linked it by
tty_port_link_device(). If it wasn't, the tty layer would WARN loudly.
So it's pointless to set it in rs_open. Instead, use the value in
tty->port to find out the serial_state (info).

It's a fallout of commit b19e2ca77ee4 (TTY: use tty_port_link_device)
which added tty_port_link_device here, but omitted to remove the
tty->port assignment from rs_open.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20210714091314.8292-5-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/amiserial.c

index 0962b19..68f8cee 100644 (file)
@@ -1361,14 +1361,14 @@ static void rs_hangup(struct tty_struct *tty)
  */
 static int rs_open(struct tty_struct *tty, struct file * filp)
 {
-       struct serial_state *info = rs_table + tty->index;
-       struct tty_port *port = &info->tport;
+       struct tty_port *port = tty->port;
+       struct serial_state *info = container_of(port, struct serial_state,
+                       tport);
        int retval;
 
        port->count++;
        port->tty = tty;
        tty->driver_data = info;
-       tty->port = port;
 
        retval = startup(tty, info);
        if (retval) {