mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-19 18:53:52 +08:00
tty: split the lock up a bit further
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 <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
5ec93d1154
commit
36ba782e96
@ -516,6 +516,8 @@ static void do_tty_hangup(struct work_struct *work)
|
|||||||
/* inuse_filps is protected by the single kernel lock */
|
/* inuse_filps is protected by the single kernel lock */
|
||||||
lock_kernel();
|
lock_kernel();
|
||||||
check_tty_count(tty, "do_tty_hangup");
|
check_tty_count(tty, "do_tty_hangup");
|
||||||
|
unlock_kernel();
|
||||||
|
|
||||||
file_list_lock();
|
file_list_lock();
|
||||||
/* This breaks for file handles being sent over AF_UNIX sockets ? */
|
/* This breaks for file handles being sent over AF_UNIX sockets ? */
|
||||||
list_for_each_entry(filp, &tty->tty_files, f_u.fu_list) {
|
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();
|
file_list_unlock();
|
||||||
|
|
||||||
|
lock_kernel();
|
||||||
tty_ldisc_hangup(tty);
|
tty_ldisc_hangup(tty);
|
||||||
|
|
||||||
read_lock(&tasklist_lock);
|
read_lock(&tasklist_lock);
|
||||||
|
Loading…
Reference in New Issue
Block a user