mirror of https://gitee.com/openkylin/linux.git
XTENSA: iss/console, fix potential deadlock
If the timer ticks while we are holding the spinlock, the system deadlocks. It is due to synchronous del_timer. So to fix that, use spinlocks that properly disable bottom halves. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Cc: Chris Zankel <chris@zankel.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
86e7e87463
commit
c9ddb1d6e2
|
@ -91,11 +91,10 @@ static int rs_open(struct tty_struct *tty, struct file * filp)
|
|||
*/
|
||||
static void rs_close(struct tty_struct *tty, struct file * filp)
|
||||
{
|
||||
spin_lock(&timer_lock);
|
||||
spin_lock_bh(&timer_lock);
|
||||
if (tty->count == 1)
|
||||
/* this will cause a deadlock if the timer ticks right now */
|
||||
del_timer_sync(&serial_timer);
|
||||
spin_unlock(&timer_lock);
|
||||
spin_unlock_bh(&timer_lock);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue