summaryrefslogtreecommitdiffstats
path: root/drivers/serial/8250.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-11-12 16:02:30 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2010-11-12 16:02:30 -0800
commitedaa4d668babd65e98e1452043996bbefc0285b0 (patch)
treea6cf4c6083ae49e8d1b7a4efc92a32864a79e534 /drivers/serial/8250.c
parent891cbd30ef456664e50bbd28436ef3006a81cf7c (diff)
parent40e3465db2cffd64e069ca82ee981025554bc159 (diff)
downloadblackbird-op-linux-edaa4d668babd65e98e1452043996bbefc0285b0.tar.gz
blackbird-op-linux-edaa4d668babd65e98e1452043996bbefc0285b0.zip
Merge branch 'tty-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6
* 'tty-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: n_gsm: Fix length handling n_gsm: Copy n2 over when configuring via ioctl interface serial: bfin_5xx: grab port lock before making port termios changes serial: bfin_5xx: disable CON_PRINTBUFFER for consoles serial: bfin_5xx: remove redundant SSYNC to improve TX speed serial: bfin_5xx: always include DMA headers vcs: make proper usage of the poll flags amiserial: Remove unused variable icount 8250: Fix tcsetattr to avoid ioctl(TIOCMIWAIT) hang tty_ldisc: Fix BUG() on hangup TTY: restore tty_ldisc_wait_idle SERIAL: blacklist si3052 chip drivers/serial/bfin_5xx.c: Fix line continuation defects tty: prevent DOS in the flush_to_ldisc 8250: add support for Kouwell KW-L221N-2 nozomi: Fix warning from the previous TIOCGCOUNT changes tty: fix warning in synclink driver tty: Fix formatting in tty.h tty: the development tree is now done in git
Diffstat (limited to 'drivers/serial/8250.c')
-rw-r--r--drivers/serial/8250.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index 4d8e14b7aa93..dd5e1ac22251 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -2343,8 +2343,11 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios,
/*
* CTS flow control flag and modem status interrupts
+ * Only disable MSI if no threads are waiting in
+ * serial_core::uart_wait_modem_status
*/
- up->ier &= ~UART_IER_MSI;
+ if (!waitqueue_active(&up->port.state->port.delta_msr_wait))
+ up->ier &= ~UART_IER_MSI;
if (!(up->bugs & UART_BUG_NOMSR) &&
UART_ENABLE_MS(&up->port, termios->c_cflag))
up->ier |= UART_IER_MSI;
OpenPOWER on IntegriCloud