ARM: fiq_debugger: lock between tty and console writes
authorColin Cross <ccross@android.com>
Thu, 1 Nov 2012 00:41:39 +0000 (17:41 -0700)
committerJohn Stultz <john.stultz@linaro.org>
Tue, 16 Feb 2016 21:52:23 +0000 (13:52 -0800)
commit394668b4523a3bb88be279f1c11f812602d7971a
treead719a539d93298a74b472e140d3a34b36f100d3
parent05c369015c46c8c3fbabffd0e15ec4a28a18212d
ARM: fiq_debugger: lock between tty and console writes

debug_console_write calls debug_uart_flush, which will usually wait
until the serial port fifo empties.  If another thread is continuously
calling fiq_tty_write, the fifo will constantly be refilled and
debug_uart_flush might never return.

Add a spinlock that is locked in debug_console_write and fiq_tty_write
to ensure they can't run at the same time.  This has an extra advantage
of preventing lines from the console and tty from being mixed together.

Also reduce the size returned by fiq_tty_write_room to keep the time
spent with the spinlock held to a reasonable value.

In addition, make sure fiq context can't loop forever by never calling
debug_uart_flush when the console is enabled.

Change-Id: I5712b01f740ca0c84f680d2032c9fa16b7656939
Signed-off-by: Colin Cross <ccross@android.com>
arch/arm/common/fiq_debugger.c