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>
This commit is contained in:
parent
d728335322
commit
d5cae36414
|
@ -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))
|
||||
|
|
Loading…
Reference in New Issue