16 lines
590 B
Diff
16 lines
590 B
Diff
|
--- linux-2.6.38.3/drivers/xen/console/console.c.orig 2011-07-21 13:20:34.120001602 +0200
|
||
|
+++ linux-2.6.38.3/drivers/xen/console/console.c 2011-07-21 13:36:14.848001956 +0200
|
||
|
@@ -618,7 +618,12 @@ static void xencons_close(struct tty_str
|
||
|
if (DUMMY_TTY(tty))
|
||
|
return;
|
||
|
|
||
|
+ /* We are called under tty_lock(). As other functions in tty core
|
||
|
+ obtain locks in tty_mutex,tty_lock order, we must do the same to
|
||
|
+ avoid a deadlock. Thus we must first tty_unlock(), and then lock. */
|
||
|
+ tty_unlock();
|
||
|
mutex_lock(&tty_mutex);
|
||
|
+ tty_lock();
|
||
|
|
||
|
if (tty->count != 1) {
|
||
|
mutex_unlock(&tty_mutex);
|