Commit cc20b900be7aa8e456aff82dfcb55fb15c508962
Committed by
Russell King
1 parent
4c9f8be7da
Exists in
master
and in
7 other branches
ARM: 5874/1: serial21285: fix disable_irq-from-interrupt-handler deadlock
The console hangs during bootup when disable_irq is called from the transmit interrupt handler (it will wait forever for it's "own" interrupt in synchronize_irq). Fix by using disable_irq_nosync() instead. Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Showing 1 changed file with 2 additions and 2 deletions Side-by-side Diff
drivers/serial/21285.c
... | ... | @@ -58,7 +58,7 @@ |
58 | 58 | static void serial21285_stop_tx(struct uart_port *port) |
59 | 59 | { |
60 | 60 | if (tx_enabled(port)) { |
61 | - disable_irq(IRQ_CONTX); | |
61 | + disable_irq_nosync(IRQ_CONTX); | |
62 | 62 | tx_enabled(port) = 0; |
63 | 63 | } |
64 | 64 | } |
... | ... | @@ -74,7 +74,7 @@ |
74 | 74 | static void serial21285_stop_rx(struct uart_port *port) |
75 | 75 | { |
76 | 76 | if (rx_enabled(port)) { |
77 | - disable_irq(IRQ_CONRX); | |
77 | + disable_irq_nosync(IRQ_CONRX); | |
78 | 78 | rx_enabled(port) = 0; |
79 | 79 | } |
80 | 80 | } |