diff options
author | Alan Cox <alan@redhat.com> | 2008-08-04 17:47:07 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-08-04 17:12:07 -0700 |
commit | d5cae364148088911bdf007a8aaefb46a92f16f7 (patch) | |
tree | 7dc6d3d99f4a056ff9efed96fea61ff54acab046 /drivers/char | |
parent | d7283353221e73a793847252d063ff9186885160 (diff) | |
download | op-kernel-dev-d5cae364148088911bdf007a8aaefb46a92f16f7.zip op-kernel-dev-d5cae364148088911bdf007a8aaefb46a92f16f7.tar.gz |
vt: Deadlock workaround
2.6.26 corrected the mutex locking on tty resizing to fix the case where
you could get the tty/vt sizing out of sync. That turns out to have a
deadlock.
The actual fix is really major and I've got it lined up as part of the ops
changes for 2.6.28 so for 2.6.26/2.6.27 it is safer to reintroduce this
ages old minor bug.
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/vt.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/char/vt.c b/drivers/char/vt.c index 82a51f3..1bc00c9 100644 --- a/drivers/char/vt.c +++ b/drivers/char/vt.c @@ -916,7 +916,6 @@ int vc_resize(struct vc_data *vc, unsigned int cols, unsigned int lines) ws.ws_col = vc->vc_cols; ws.ws_ypixel = vc->vc_scan_lines; - mutex_lock(&vc->vc_tty->termios_mutex); spin_lock_irq(&vc->vc_tty->ctrl_lock); if ((ws.ws_row != cws->ws_row || ws.ws_col != cws->ws_col)) pgrp = get_pid(vc->vc_tty->pgrp); @@ -926,7 +925,6 @@ int vc_resize(struct vc_data *vc, unsigned int cols, unsigned int lines) put_pid(pgrp); } *cws = ws; - mutex_unlock(&vc->vc_tty->termios_mutex); } if (CON_IS_VISIBLE(vc)) |