diff options
Diffstat (limited to 'drivers/usb/serial/ftdi_sio.c')
-rw-r--r-- | drivers/usb/serial/ftdi_sio.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index ef6cfa5a447f..f92f4d773374 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c | |||
@@ -660,6 +660,9 @@ static struct usb_device_id id_table_combined [] = { | |||
660 | { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO4x4_PID) }, | 660 | { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO4x4_PID) }, |
661 | { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DGQG_PID) }, | 661 | { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DGQG_PID) }, |
662 | { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DUSB_PID) }, | 662 | { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DUSB_PID) }, |
663 | { USB_DEVICE(ALTI2_VID, ALTI2_N3_PID) }, | ||
664 | { USB_DEVICE(FTDI_VID, DIEBOLD_BCS_SE923_PID) }, | ||
665 | { USB_DEVICE(FTDI_VID, FTDI_NDI_HUC_PID) }, | ||
663 | { }, /* Optional parameter entry */ | 666 | { }, /* Optional parameter entry */ |
664 | { } /* Terminating entry */ | 667 | { } /* Terminating entry */ |
665 | }; | 668 | }; |
@@ -1062,8 +1065,10 @@ static int set_serial_info(struct tty_struct *tty, | |||
1062 | 1065 | ||
1063 | if (!capable(CAP_SYS_ADMIN)) { | 1066 | if (!capable(CAP_SYS_ADMIN)) { |
1064 | if (((new_serial.flags & ~ASYNC_USR_MASK) != | 1067 | if (((new_serial.flags & ~ASYNC_USR_MASK) != |
1065 | (priv->flags & ~ASYNC_USR_MASK))) | 1068 | (priv->flags & ~ASYNC_USR_MASK))) { |
1069 | unlock_kernel(); | ||
1066 | return -EPERM; | 1070 | return -EPERM; |
1071 | } | ||
1067 | priv->flags = ((priv->flags & ~ASYNC_USR_MASK) | | 1072 | priv->flags = ((priv->flags & ~ASYNC_USR_MASK) | |
1068 | (new_serial.flags & ASYNC_USR_MASK)); | 1073 | (new_serial.flags & ASYNC_USR_MASK)); |
1069 | priv->custom_divisor = new_serial.custom_divisor; | 1074 | priv->custom_divisor = new_serial.custom_divisor; |
@@ -2030,7 +2035,7 @@ static void ftdi_process_read(struct work_struct *work) | |||
2030 | spin_unlock_irqrestore(&priv->rx_lock, flags); | 2035 | spin_unlock_irqrestore(&priv->rx_lock, flags); |
2031 | dbg("%s - deferring remainder until unthrottled", | 2036 | dbg("%s - deferring remainder until unthrottled", |
2032 | __func__); | 2037 | __func__); |
2033 | return; | 2038 | goto out; |
2034 | } | 2039 | } |
2035 | spin_unlock_irqrestore(&priv->rx_lock, flags); | 2040 | spin_unlock_irqrestore(&priv->rx_lock, flags); |
2036 | /* if the port is closed stop trying to read */ | 2041 | /* if the port is closed stop trying to read */ |