lkml.org 
[lkml]   [2018]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 27/50] opticon: switch to ->get_serial()
    Date
    From: Al Viro <viro@zeniv.linux.org.uk>

    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    ---
    drivers/usb/serial/opticon.c | 43 ++++++++++++-------------------------------
    1 file changed, 12 insertions(+), 31 deletions(-)

    diff --git a/drivers/usb/serial/opticon.c b/drivers/usb/serial/opticon.c
    index caa0746326fd..cb7aac9cd9e7 100644
    --- a/drivers/usb/serial/opticon.c
    +++ b/drivers/usb/serial/opticon.c
    @@ -328,42 +328,23 @@ static int opticon_tiocmset(struct tty_struct *tty,
    return 0;
    }

    -static int get_serial_info(struct usb_serial_port *port,
    - struct serial_struct __user *serial)
    +static int get_serial_info(struct tty_struct *tty,
    + struct serial_struct *ss)
    {
    - struct serial_struct tmp;
    -
    - memset(&tmp, 0x00, sizeof(tmp));
    + struct usb_serial_port *port = tty->driver_data;

    /* fake emulate a 16550 uart to make userspace code happy */
    - tmp.type = PORT_16550A;
    - tmp.line = port->minor;
    - tmp.port = 0;
    - tmp.irq = 0;
    - tmp.xmit_fifo_size = 1024;
    - tmp.baud_base = 9600;
    - tmp.close_delay = 5*HZ;
    - tmp.closing_wait = 30*HZ;
    -
    - if (copy_to_user(serial, &tmp, sizeof(*serial)))
    - return -EFAULT;
    + ss->type = PORT_16550A;
    + ss->line = port->minor;
    + ss->port = 0;
    + ss->irq = 0;
    + ss->xmit_fifo_size = 1024;
    + ss->baud_base = 9600;
    + ss->close_delay = 5*HZ;
    + ss->closing_wait = 30*HZ;
    return 0;
    }

    -static int opticon_ioctl(struct tty_struct *tty,
    - unsigned int cmd, unsigned long arg)
    -{
    - struct usb_serial_port *port = tty->driver_data;
    -
    - switch (cmd) {
    - case TIOCGSERIAL:
    - return get_serial_info(port,
    - (struct serial_struct __user *)arg);
    - }
    -
    - return -ENOIOCTLCMD;
    -}
    -
    static int opticon_port_probe(struct usb_serial_port *port)
    {
    struct opticon_private *priv;
    @@ -404,7 +385,7 @@ static struct usb_serial_driver opticon_device = {
    .write_room = opticon_write_room,
    .throttle = usb_serial_generic_throttle,
    .unthrottle = usb_serial_generic_unthrottle,
    - .ioctl = opticon_ioctl,
    + .get_serial = get_serial_info,
    .tiocmget = opticon_tiocmget,
    .tiocmset = opticon_tiocmset,
    .process_read_urb = opticon_process_read_urb,
    --
    2.11.0
    \
     
     \ /
      Last update: 2018-09-13 04:44    [W:3.191 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site