Skip to content

Commit

Permalink
[SERIAL] Fix clocal wakeup problem
Browse files Browse the repository at this point in the history
Jim Alexander reported a problem where "if one calls open() in
blocking mode with CLOCAL off, the 8250.c driver under the 2.6
kernel (or at least 2.6.8 and 2.6.10) does not wake up the
blocked process when DCD is asserted."

Fix this by enabling modem status interrupts immediately before
we read the carrier detect status.

Thanks to Jim for reporting the problem and testing the fix.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Russell King authored and Russell King committed Jan 7, 2006
1 parent b9abaa3 commit f61051c
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions drivers/serial/serial_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1440,6 +1440,7 @@ uart_block_til_ready(struct file *filp, struct uart_state *state)
* modem is ready for us.
*/
spin_lock_irq(&port->lock);
port->ops->enable_ms(port);
mctrl = port->ops->get_mctrl(port);
spin_unlock_irq(&port->lock);
if (mctrl & TIOCM_CAR)
Expand Down

0 comments on commit f61051c

Please sign in to comment.