diff options
author | 2014-09-10 15:06:31 -0400 | |
---|---|---|
committer | 2014-09-23 21:19:35 -0700 | |
commit | f9e053dcfc02b0ad29daec8524fb1afe09774976 (patch) | |
tree | 2d930c2d89b011b40c03eeb13ee6f431cb602d3f /tools/perf/scripts/python/call-graph-from-postgresql.py | |
parent | tty: Convert tty_struct bitfield to ints (diff) | |
download | wireguard-linux-f9e053dcfc02b0ad29daec8524fb1afe09774976.tar.xz wireguard-linux-f9e053dcfc02b0ad29daec8524fb1afe09774976.zip |
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 'tools/perf/scripts/python/call-graph-from-postgresql.py')
0 files changed, 0 insertions, 0 deletions