提交 2389b272 编写于 作者: T Thomas Gleixner 提交者: Russell King

[ARM] 4417/1: Serial: Fix AMBA drivers locking

The -rt patch triggered a lockdep warning in the amba serial drivers, which never
shows up on UP kernels. On SMP systems this would trigger as well.

Release the port lock before calling tty_flip_buffer_push() and reacquire it after
the call. This matches the code in the 8250 serial driver.
Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
上级 2ccdd1e7
......@@ -167,8 +167,9 @@ static void pl010_rx_chars(struct uart_amba_port *uap)
ignore_char:
status = readb(uap->port.membase + UART01x_FR);
}
spin_unlock(&port->lock);
tty_flip_buffer_push(tty);
return;
spin_lock(&port->lock);
}
static void pl010_tx_chars(struct uart_amba_port *uap)
......
......@@ -153,8 +153,9 @@ static void pl011_rx_chars(struct uart_amba_port *uap)
ignore_char:
status = readw(uap->port.membase + UART01x_FR);
}
spin_unlock(&uap->port.lock);
tty_flip_buffer_push(tty);
return;
spin_lock(&uap->port.lock);
}
static void pl011_tx_chars(struct uart_amba_port *uap)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册