Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d5cae364 authored by Alan Cox's avatar Alan Cox Committed by Linus Torvalds
Browse files

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: default avatarAlan Cox <alan@redhat.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent d7283353
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -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))