diff options
author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2012-06-22 16:40:20 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-06-26 19:25:38 -0700 |
commit | 0a44ab41eb833d07e3ec807d87151c7164d4f075 (patch) | |
tree | 8073a65697742960db6bb61fecbc70bd06b15fb1 | |
parent | fc915c8b930c3114f2a838f7e2cd8789ad6fedc3 (diff) | |
download | linux-0a44ab41eb833d07e3ec807d87151c7164d4f075.tar.gz linux-0a44ab41eb833d07e3ec807d87151c7164d4f075.tar.bz2 linux-0a44ab41eb833d07e3ec807d87151c7164d4f075.zip |
tty: note race we need to fix
This was identified by Vincent Pillet with a high speed interface that uses
low latency mode. In the low latency case we have a tiny race but it can
be hit.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/tty/n_tty.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c index ee1c268f5f9d..4f34491b65c6 100644 --- a/drivers/tty/n_tty.c +++ b/drivers/tty/n_tty.c @@ -1432,6 +1432,12 @@ static void n_tty_receive_buf(struct tty_struct *tty, const unsigned char *cp, */ if (tty->receive_room < TTY_THRESHOLD_THROTTLE) tty_throttle(tty); + + /* FIXME: there is a tiny race here if the receive room check runs + before the other work executes and empties the buffer (upping + the receiving room and unthrottling. We then throttle and get + stuck. This has been observed and traced down by Vincent Pillet/ + We need to address this when we sort out out the rx path locking */ } int is_ignored(int sig) |