summaryrefslogtreecommitdiffstats
path: root/drivers/tty/tty_port.c
diff options
context:
space:
mode:
authorJohan Hovold <jhovold@gmail.com>2013-03-07 15:55:49 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-03-18 16:27:53 -0700
commit31ca020b57f7c08da187613cf20becd664c467fa (patch)
treed9e88ffeba1fd99eb52e2f98d93b5584eb62b2c9 /drivers/tty/tty_port.c
parent8bde9658a0e6a7098dcda1ce6ea6b278029644b4 (diff)
downloadlinux-0-day-31ca020b57f7c08da187613cf20becd664c467fa.tar.gz
linux-0-day-31ca020b57f7c08da187613cf20becd664c467fa.tar.xz
TTY: wake up processes last at hangup
Move wake up of processes on blocked-open and modem-status wait queues to after port shutdown at hangup. This way the woken up processes can use the ASYNC_INITIALIZED flag to detect port shutdown. Note that this is the order currently used by serial-core. Signed-off-by: Johan Hovold <jhovold@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/tty_port.c')
-rw-r--r--drivers/tty/tty_port.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/tty/tty_port.c b/drivers/tty/tty_port.c
index 2aea2f91e271b..73bc1d989d322 100644
--- a/drivers/tty/tty_port.c
+++ b/drivers/tty/tty_port.c
@@ -231,9 +231,9 @@ void tty_port_hangup(struct tty_port *port)
}
port->tty = NULL;
spin_unlock_irqrestore(&port->lock, flags);
+ tty_port_shutdown(port);
wake_up_interruptible(&port->open_wait);
wake_up_interruptible(&port->delta_msr_wait);
- tty_port_shutdown(port);
}
EXPORT_SYMBOL(tty_port_hangup);