Searched hist:"8117 e347406278fd399b077add4e638cd017ae2d" (Results 1 – 1 of 1) sorted by relevance
/openbmc/linux/drivers/tty/serial/ |
H A D | men_z135_uart.c | diff 8117e347406278fd399b077add4e638cd017ae2d Thu Aug 06 02:16:37 CDT 2015 Johannes Thumshirn <jthumshirn@suse.de> tty: serial: men_z135_uart.c: Fix race between IRQ and set_termios()
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> Cc: stable@vger.kernel.org # v4.0+ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|