From: Al Viro <v...@zeniv.linux.org.uk>

Signed-off-by: Al Viro <v...@zeniv.linux.org.uk>
---
 drivers/usb/serial/f81534.c | 38 ++++++++------------------------------
 1 file changed, 8 insertions(+), 30 deletions(-)

diff --git a/drivers/usb/serial/f81534.c b/drivers/usb/serial/f81534.c
index 4dfbff20bda4..380933db34dd 100644
--- a/drivers/usb/serial/f81534.c
+++ b/drivers/usb/serial/f81534.c
@@ -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,
-- 
2.11.0

Reply via email to