diff options
author | Peter Hurley <peter@hurleysoftware.com> | 2014-09-10 15:06:31 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-09-24 00:19:35 -0400 |
commit | f9e053dcfc02b0ad29daec8524fb1afe09774976 (patch) | |
tree | 2d930c2d89b011b40c03eeb13ee6f431cb602d3f /Documentation/stable_api_nonsense.txt | |
parent | d7a855bd6ab25d10d5e3b6aeb53d9c57fa17b808 (diff) |
tty: Serialize tty flow control changes with flow_lock
Without serialization, the flow control state can become inverted
wrt. the actual hardware state. For example,
CPU 0 | CPU 1
stop_tty() |
lock ctrl_lock |
tty->stopped = 1 |
unlock ctrl_lock |
| start_tty()
| lock ctrl_lock
| tty->stopped = 0
| unlock ctrl_lock
| driver->start()
driver->stop() |
In this case, the flow control state now indicates the tty has
been started, but the actual hardware state has actually been stopped.
Introduce tty->flow_lock spinlock to serialize tty flow control changes.
Split out unlocked __start_tty()/__stop_tty() flavors for use by
ioctl(TCXONC) in follow-on patch.
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'Documentation/stable_api_nonsense.txt')
0 files changed, 0 insertions, 0 deletions