OSDN Git Service

f81534: switch to ->get_serial()
authorAl Viro <viro@zeniv.linux.org.uk>
Wed, 12 Sep 2018 03:38:49 +0000 (23:38 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sat, 13 Oct 2018 04:50:36 +0000 (00:50 -0400)
Reviewed-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
drivers/usb/serial/f81534.c

index 4dfbff2..380933d 100644 (file)
@@ -1139,43 +1139,21 @@ static void f81534_close(struct usb_serial_port *port)
        mutex_unlock(&serial_priv->urb_mutex);
 }
 
-static int f81534_get_serial_info(struct usb_serial_port *port,
-                                 struct serial_struct __user *retinfo)
+static int f81534_get_serial_info(struct tty_struct *tty,
+                                 struct serial_struct *ss)
 {
+       struct usb_serial_port *port = tty->driver_data;
        struct f81534_port_private *port_priv;
-       struct serial_struct tmp;
 
        port_priv = usb_get_serial_port_data(port);
 
-       memset(&tmp, 0, sizeof(tmp));
-
-       tmp.type = PORT_16550A;
-       tmp.port = port->port_number;
-       tmp.line = port->minor;
-       tmp.baud_base = port_priv->baud_base;
-
-       if (copy_to_user(retinfo, &tmp, sizeof(*retinfo)))
-               return -EFAULT;
-
+       ss->type = PORT_16550A;
+       ss->port = port->port_number;
+       ss->line = port->minor;
+       ss->baud_base = port_priv->baud_base;
        return 0;
 }
 
-static int f81534_ioctl(struct tty_struct *tty, unsigned int cmd,
-                       unsigned long arg)
-{
-       struct usb_serial_port *port = tty->driver_data;
-       struct serial_struct __user *buf = (struct serial_struct __user *)arg;
-
-       switch (cmd) {
-       case TIOCGSERIAL:
-               return f81534_get_serial_info(port, buf);
-       default:
-               break;
-       }
-
-       return -ENOIOCTLCMD;
-}
-
 static void f81534_process_per_serial_block(struct usb_serial_port *port,
                u8 *data)
 {
@@ -1581,7 +1559,7 @@ static struct usb_serial_driver f81534_device = {
        .break_ctl =            f81534_break_ctl,
        .dtr_rts =              f81534_dtr_rts,
        .process_read_urb =     f81534_process_read_urb,
-       .ioctl =                f81534_ioctl,
+       .get_serial =           f81534_get_serial_info,
        .tiocmget =             f81534_tiocmget,
        .tiocmset =             f81534_tiocmset,
        .write_bulk_callback =  f81534_write_usb_callback,