Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c47a830c authored by Dick Hollenbeck's avatar Dick Hollenbeck Committed by Russell King
Browse files

ARM: 5688/1: ks8695_serial: disable_irq() lockup



disable_irq() cannot be called from interrupt context without self imposed deadlock. This was happening in ks8695uart_stop_tx().

Signed-off-by: default avatarDick Hollenbeck <dick@softplc.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 13f96d8f
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -110,7 +110,11 @@ static struct console ks8695_console;
static void ks8695uart_stop_tx(struct uart_port *port)
{
	if (tx_enabled(port)) {
		disable_irq(KS8695_IRQ_UART_TX);
		/* use disable_irq_nosync() and not disable_irq() to avoid self
		 * imposed deadlock by not waiting for irq handler to end,
		 * since this ks8695uart_stop_tx() is called from interrupt context.
		 */
		disable_irq_nosync(KS8695_IRQ_UART_TX);
		tx_enable(port, 0);
	}
}