Skip to content

Commit

Permalink
tty: split the lock up a bit further
Browse files Browse the repository at this point in the history
The tty count sanity check may need the BKL, that isn't clear. However it
is clear that the count use of the lock is internal and independant of the
bigger use of the lock.

Furthermore the file list locking is also separately locked already

Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
Alan Cox authored and gregkh committed Dec 11, 2009
1 parent 5ec93d1 commit 36ba782
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions drivers/char/tty_io.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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);
Expand Down

0 comments on commit 36ba782

Please sign in to comment.