diff options
author | Peter Hurley <peter@hurleysoftware.com> | 2013-06-15 09:14:31 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-07-23 19:43:02 -0400 |
commit | d8c1f929aa8164cd8eaa830068d2fa3159c0764a (patch) | |
tree | 1371cfe90fffdcb7115b39c77e0f729c109efc69 /drivers/tty/n_tty.c | |
parent | fb7aa03db605e4f0b9a62cd4c77177c2596edd95 (diff) |
tty: Only guarantee termios read safety for throttle/unthrottle
No tty driver modifies termios during throttle() or unthrottle().
Therefore, only read safety is required.
However, tty_throttle_safe and tty_unthrottle_safe must still be
mutually exclusive; introduce throttle_mutex for that purpose.
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/n_tty.c')
-rw-r--r-- | drivers/tty/n_tty.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c index d0c8805d8131..b78ee464bd09 100644 --- a/drivers/tty/n_tty.c +++ b/drivers/tty/n_tty.c | |||
@@ -1518,9 +1518,7 @@ static void __receive_buf(struct tty_struct *tty, const unsigned char *cp, | |||
1518 | tty_set_flow_change(tty, TTY_THROTTLE_SAFE); | 1518 | tty_set_flow_change(tty, TTY_THROTTLE_SAFE); |
1519 | if (receive_room(tty) >= TTY_THRESHOLD_THROTTLE) | 1519 | if (receive_room(tty) >= TTY_THRESHOLD_THROTTLE) |
1520 | break; | 1520 | break; |
1521 | up_read(&tty->termios_rwsem); | ||
1522 | throttled = tty_throttle_safe(tty); | 1521 | throttled = tty_throttle_safe(tty); |
1523 | down_read(&tty->termios_rwsem); | ||
1524 | if (!throttled) | 1522 | if (!throttled) |
1525 | break; | 1523 | break; |
1526 | } | 1524 | } |
@@ -2086,9 +2084,7 @@ do_it_again: | |||
2086 | if (!tty->count) | 2084 | if (!tty->count) |
2087 | break; | 2085 | break; |
2088 | n_tty_set_room(tty); | 2086 | n_tty_set_room(tty); |
2089 | up_read(&tty->termios_rwsem); | ||
2090 | unthrottled = tty_unthrottle_safe(tty); | 2087 | unthrottled = tty_unthrottle_safe(tty); |
2091 | down_read(&tty->termios_rwsem); | ||
2092 | if (!unthrottled) | 2088 | if (!unthrottled) |
2093 | break; | 2089 | break; |
2094 | } | 2090 | } |