Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6698e347 authored by Alan Cox's avatar Alan Cox Committed by Linus Torvalds
Browse files

tty: Fix BKL taken under a spinlock bug introduced in the BKL split



The fasync path takes the BKL (it probably doesn't need to in fact)
while holding the file_list spinlock.  You can't do that with the kernel
lock: it causes lock inversions and deadlocks.

Leave the BKL over that bit for the moment.

Identified by AKPM.

Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
Acked-and-Tested-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 09cea96c
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -516,7 +516,6 @@ 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 ? */
@@ -531,7 +530,6 @@ static void do_tty_hangup(struct work_struct *work)
	}
	file_list_unlock();

	lock_kernel();
	tty_ldisc_hangup(tty);

	read_lock(&tasklist_lock);