Loading drivers/usb/serial/option.c +2 −1 Original line number Diff line number Diff line Loading @@ -1962,7 +1962,8 @@ static struct usb_serial_driver option_1port_device = { .chars_in_buffer = usb_wwan_chars_in_buffer, .tiocmget = usb_wwan_tiocmget, .tiocmset = usb_wwan_tiocmset, .ioctl = usb_wwan_ioctl, .get_serial = usb_wwan_get_serial_info, .set_serial = usb_wwan_set_serial_info, .attach = option_attach, .release = option_release, .port_probe = usb_wwan_port_probe, Loading drivers/usb/serial/usb-wwan.h +4 −2 Original line number Diff line number Diff line Loading @@ -15,8 +15,10 @@ extern int usb_wwan_write_room(struct tty_struct *tty); extern int usb_wwan_tiocmget(struct tty_struct *tty); extern int usb_wwan_tiocmset(struct tty_struct *tty, unsigned int set, unsigned int clear); extern int usb_wwan_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg); extern int usb_wwan_get_serial_info(struct tty_struct *tty, struct serial_struct *ss); extern int usb_wwan_set_serial_info(struct tty_struct *tty, struct serial_struct *ss); extern int usb_wwan_write(struct tty_struct *tty, struct usb_serial_port *port, const unsigned char *buf, int count); extern int usb_wwan_chars_in_buffer(struct tty_struct *tty); Loading drivers/usb/serial/usb_wwan.c +17 −46 Original line number Diff line number Diff line Loading @@ -132,38 +132,32 @@ int usb_wwan_tiocmset(struct tty_struct *tty, } EXPORT_SYMBOL(usb_wwan_tiocmset); static int get_serial_info(struct usb_serial_port *port, struct serial_struct __user *retinfo) int usb_wwan_get_serial_info(struct tty_struct *tty, struct serial_struct *ss) { struct serial_struct tmp; memset(&tmp, 0, sizeof(tmp)); tmp.line = port->minor; tmp.port = port->port_number; tmp.baud_base = tty_get_baud_rate(port->port.tty); tmp.close_delay = port->port.close_delay / 10; tmp.closing_wait = port->port.closing_wait == ASYNC_CLOSING_WAIT_NONE ? struct usb_serial_port *port = tty->driver_data; ss->line = port->minor; ss->port = port->port_number; ss->baud_base = tty_get_baud_rate(port->port.tty); ss->close_delay = port->port.close_delay / 10; ss->closing_wait = port->port.closing_wait == ASYNC_CLOSING_WAIT_NONE ? ASYNC_CLOSING_WAIT_NONE : port->port.closing_wait / 10; if (copy_to_user(retinfo, &tmp, sizeof(*retinfo))) return -EFAULT; return 0; } EXPORT_SYMBOL(usb_wwan_get_serial_info); static int set_serial_info(struct usb_serial_port *port, struct serial_struct __user *newinfo) int usb_wwan_set_serial_info(struct tty_struct *tty, struct serial_struct *ss) { struct serial_struct new_serial; struct usb_serial_port *port = tty->driver_data; unsigned int closing_wait, close_delay; int retval = 0; if (copy_from_user(&new_serial, newinfo, sizeof(new_serial))) return -EFAULT; close_delay = new_serial.close_delay * 10; closing_wait = new_serial.closing_wait == ASYNC_CLOSING_WAIT_NONE ? ASYNC_CLOSING_WAIT_NONE : new_serial.closing_wait * 10; close_delay = ss->close_delay * 10; closing_wait = ss->closing_wait == ASYNC_CLOSING_WAIT_NONE ? ASYNC_CLOSING_WAIT_NONE : ss->closing_wait * 10; mutex_lock(&port->port.mutex); Loading @@ -181,30 +175,7 @@ static int set_serial_info(struct usb_serial_port *port, mutex_unlock(&port->port.mutex); return retval; } int usb_wwan_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg) { struct usb_serial_port *port = tty->driver_data; dev_dbg(&port->dev, "%s cmd 0x%04x\n", __func__, cmd); switch (cmd) { case TIOCGSERIAL: return get_serial_info(port, (struct serial_struct __user *) arg); case TIOCSSERIAL: return set_serial_info(port, (struct serial_struct __user *) arg); default: break; } dev_dbg(&port->dev, "%s arg not supported\n", __func__); return -ENOIOCTLCMD; } EXPORT_SYMBOL(usb_wwan_ioctl); EXPORT_SYMBOL(usb_wwan_set_serial_info); int usb_wwan_write(struct tty_struct *tty, struct usb_serial_port *port, const unsigned char *buf, int count) Loading Loading
drivers/usb/serial/option.c +2 −1 Original line number Diff line number Diff line Loading @@ -1962,7 +1962,8 @@ static struct usb_serial_driver option_1port_device = { .chars_in_buffer = usb_wwan_chars_in_buffer, .tiocmget = usb_wwan_tiocmget, .tiocmset = usb_wwan_tiocmset, .ioctl = usb_wwan_ioctl, .get_serial = usb_wwan_get_serial_info, .set_serial = usb_wwan_set_serial_info, .attach = option_attach, .release = option_release, .port_probe = usb_wwan_port_probe, Loading
drivers/usb/serial/usb-wwan.h +4 −2 Original line number Diff line number Diff line Loading @@ -15,8 +15,10 @@ extern int usb_wwan_write_room(struct tty_struct *tty); extern int usb_wwan_tiocmget(struct tty_struct *tty); extern int usb_wwan_tiocmset(struct tty_struct *tty, unsigned int set, unsigned int clear); extern int usb_wwan_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg); extern int usb_wwan_get_serial_info(struct tty_struct *tty, struct serial_struct *ss); extern int usb_wwan_set_serial_info(struct tty_struct *tty, struct serial_struct *ss); extern int usb_wwan_write(struct tty_struct *tty, struct usb_serial_port *port, const unsigned char *buf, int count); extern int usb_wwan_chars_in_buffer(struct tty_struct *tty); Loading
drivers/usb/serial/usb_wwan.c +17 −46 Original line number Diff line number Diff line Loading @@ -132,38 +132,32 @@ int usb_wwan_tiocmset(struct tty_struct *tty, } EXPORT_SYMBOL(usb_wwan_tiocmset); static int get_serial_info(struct usb_serial_port *port, struct serial_struct __user *retinfo) int usb_wwan_get_serial_info(struct tty_struct *tty, struct serial_struct *ss) { struct serial_struct tmp; memset(&tmp, 0, sizeof(tmp)); tmp.line = port->minor; tmp.port = port->port_number; tmp.baud_base = tty_get_baud_rate(port->port.tty); tmp.close_delay = port->port.close_delay / 10; tmp.closing_wait = port->port.closing_wait == ASYNC_CLOSING_WAIT_NONE ? struct usb_serial_port *port = tty->driver_data; ss->line = port->minor; ss->port = port->port_number; ss->baud_base = tty_get_baud_rate(port->port.tty); ss->close_delay = port->port.close_delay / 10; ss->closing_wait = port->port.closing_wait == ASYNC_CLOSING_WAIT_NONE ? ASYNC_CLOSING_WAIT_NONE : port->port.closing_wait / 10; if (copy_to_user(retinfo, &tmp, sizeof(*retinfo))) return -EFAULT; return 0; } EXPORT_SYMBOL(usb_wwan_get_serial_info); static int set_serial_info(struct usb_serial_port *port, struct serial_struct __user *newinfo) int usb_wwan_set_serial_info(struct tty_struct *tty, struct serial_struct *ss) { struct serial_struct new_serial; struct usb_serial_port *port = tty->driver_data; unsigned int closing_wait, close_delay; int retval = 0; if (copy_from_user(&new_serial, newinfo, sizeof(new_serial))) return -EFAULT; close_delay = new_serial.close_delay * 10; closing_wait = new_serial.closing_wait == ASYNC_CLOSING_WAIT_NONE ? ASYNC_CLOSING_WAIT_NONE : new_serial.closing_wait * 10; close_delay = ss->close_delay * 10; closing_wait = ss->closing_wait == ASYNC_CLOSING_WAIT_NONE ? ASYNC_CLOSING_WAIT_NONE : ss->closing_wait * 10; mutex_lock(&port->port.mutex); Loading @@ -181,30 +175,7 @@ static int set_serial_info(struct usb_serial_port *port, mutex_unlock(&port->port.mutex); return retval; } int usb_wwan_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg) { struct usb_serial_port *port = tty->driver_data; dev_dbg(&port->dev, "%s cmd 0x%04x\n", __func__, cmd); switch (cmd) { case TIOCGSERIAL: return get_serial_info(port, (struct serial_struct __user *) arg); case TIOCSSERIAL: return set_serial_info(port, (struct serial_struct __user *) arg); default: break; } dev_dbg(&port->dev, "%s arg not supported\n", __func__); return -ENOIOCTLCMD; } EXPORT_SYMBOL(usb_wwan_ioctl); EXPORT_SYMBOL(usb_wwan_set_serial_info); int usb_wwan_write(struct tty_struct *tty, struct usb_serial_port *port, const unsigned char *buf, int count) Loading