From 3a7925ba91f351a27846db23237d84ab0c6ee17f Mon Sep 17 00:00:00 2001 From: Lawrence Rust Date: Wed, 27 Oct 2010 14:41:02 +0200 Subject: [PATCH] --- yaml --- r: 221905 b: refs/heads/master c: 47d3904fe40d62deee8cd46e79ca784e7a548acd h: refs/heads/master i: 221903: df528eacaf4f626fb9ea05ff7ed250f79e58ae57 v: v3 --- [refs] | 2 +- trunk/drivers/serial/8250.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 99ab0d3b7085..c1daaa5c28b8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1c95ba1e1de7edffc0c4e275e147f1a9eb1f81ae +refs/heads/master: 47d3904fe40d62deee8cd46e79ca784e7a548acd diff --git a/trunk/drivers/serial/8250.c b/trunk/drivers/serial/8250.c index 4d8e14b7aa93..dd5e1ac22251 100644 --- a/trunk/drivers/serial/8250.c +++ b/trunk/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;