diff options
author | Johannes Thumshirn <jthumshirn@suse.de> | 2015-08-06 10:16:37 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-09-21 20:05:38 +0300 |
commit | c7d416e290ded6f563c0d316787037c79e268a07 (patch) | |
tree | b2b8ff8586708e63992bdb6f8104e8fc6a60fb56 /sound | |
parent | bf14cc44d1adfe4d2d3420b51f6f44765e0219ff (diff) | |
download | linux-c7d416e290ded6f563c0d316787037c79e268a07.tar.xz |
tty: serial: men_z135_uart.c: Fix race between IRQ and set_termios()
commit 8117e347406278fd399b077add4e638cd017ae2d upstream.
Fix panic caused by a race between men_z135_intr() and men_z135_set_termios().
men_z135_intr() and men_z135_set_termios() both hold the struct uart_port::lock
spinlock, but men_z135_intr() does a spin_lock_irqsave() and
men_z135_set_termios() does a normal spin_lock(), which can lead to a deadlock
when an interrupt is called while the lock is being helt by
men_z135_set_termios().
This was discovered using a insmod, hardware looppback send/receive, rmmod
stress test.
Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Peter Hurley <peter@hurleysoftware.com>
Cc: Andreas Werner <andreas.werner@men.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'sound')
0 files changed, 0 insertions, 0 deletions