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);