diff options
author | Johannes Thumshirn <[email protected]> | 2015-08-06 09:16:37 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <[email protected]> | 2015-08-14 17:14:13 -0700 |
commit | 8117e347406278fd399b077add4e638cd017ae2d (patch) | |
tree | c525404c5329e6d12f82dd5233687708b0a9cde2 /scripts/gdb/linux/modules.py | |
parent | 1d7002777a8fe8188caaa98d4a8eb4ed298fcdae (diff) |
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 <[email protected]>
Reviewed-by: Peter Hurley <[email protected]>
Cc: Andreas Werner <[email protected]>
Cc: [email protected] # v4.0+
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'scripts/gdb/linux/modules.py')
0 files changed, 0 insertions, 0 deletions