summaryrefslogtreecommitdiffstats
path: root/drivers/char/tty_port.c
diff options
context:
space:
mode:
authorAlan Cox <alan@redhat.com>2009-01-02 14:48:39 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2009-01-02 19:19:42 +0100
commitfba85e013f106a44e91ef5edec899fc56a7e61ee (patch)
tree88f138b0a396c51b8de403526f6a9638bc46d744 /drivers/char/tty_port.c
parenttty: kref the rocket driver (diff)
downloadlinux-fba85e013f106a44e91ef5edec899fc56a7e61ee.tar.xz
linux-fba85e013f106a44e91ef5edec899fc56a7e61ee.zip
tty: use port methods for the rocket driver
Now we have our ducks in order we can begin switching to the port operations Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/char/tty_port.c')
-rw-r--r--drivers/char/tty_port.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/char/tty_port.c b/drivers/char/tty_port.c
index b580fcf629f8..9b8004c72686 100644
--- a/drivers/char/tty_port.c
+++ b/drivers/char/tty_port.c
@@ -286,6 +286,9 @@ int tty_port_close_start(struct tty_port *port, struct tty_struct *tty, struct f
port->flags |= ASYNC_CLOSING;
tty->closing = 1;
spin_unlock_irqrestore(&port->lock, flags);
+ /* Don't block on a stalled port, just pull the chain */
+ if (tty->flow_stopped)
+ tty_driver_flush_buffer(tty);
if (port->flags & ASYNC_INITIALIZED &&
port->closing_wait != ASYNC_CLOSING_WAIT_NONE)
tty_wait_until_sent(tty, port->closing_wait);