From 29108a1710fdcfeaeef7c8b3e0061ce905ee652f Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Mon, 30 Nov 2009 13:18:51 +0000 Subject: [PATCH] --- yaml --- r: 175365 b: refs/heads/master c: 36ba782e9674cdc29ec7003757df0b375e99fa96 h: refs/heads/master i: 175363: a7514e14426cb283334a4b09a4cda4fae4423b58 v: v3 --- [refs] | 2 +- trunk/drivers/char/tty_io.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index bc52896ae665..5fa65868fef2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5ec93d1154fd1e269162398f8e70efc7e004485d +refs/heads/master: 36ba782e9674cdc29ec7003757df0b375e99fa96 diff --git a/trunk/drivers/char/tty_io.c b/trunk/drivers/char/tty_io.c index a19fef2093f1..684f0e0b175e 100644 --- a/trunk/drivers/char/tty_io.c +++ b/trunk/drivers/char/tty_io.c @@ -516,6 +516,8 @@ static void do_tty_hangup(struct work_struct *work) /* inuse_filps is protected by the single kernel lock */ lock_kernel(); check_tty_count(tty, "do_tty_hangup"); + unlock_kernel(); + file_list_lock(); /* This breaks for file handles being sent over AF_UNIX sockets ? */ list_for_each_entry(filp, &tty->tty_files, f_u.fu_list) { @@ -529,6 +531,7 @@ static void do_tty_hangup(struct work_struct *work) } file_list_unlock(); + lock_kernel(); tty_ldisc_hangup(tty); read_lock(&tasklist_lock);