serial: 8250: synchronize and annotate UART_IER access
authorJohn Ogness <john.ogness@linutronix.de>
Thu, 25 May 2023 09:31:59 +0000 (11:37 +0206)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 30 May 2023 10:45:42 +0000 (11:45 +0100)
commitd0b309a5d3f4648fd4fb1a255a7ae9fb98d87be3
tree89d0491d91746e06337ec8e8fc0a1172a7f95494
parent25614735a647693c1260f253dc3ab32127697806
serial: 8250: synchronize and annotate UART_IER access

The UART_IER register is modified twice by each console write
(serial8250_console_write()) under the port lock. Any driver code that
accesses UART_IER must do so with the port locked in order to ensure
consistent values, even when for read accesses.

Add locking, lockdep notation, and/or comments everywhere UART_IER is
accessed. The added locking is not fixing a real problem because it
occurs where the console is not active. However, adding the locking
to these non-critical paths greatly simplifies UART_IER access
tracking by establishing a general policy that all UART_IER access
is performed with the port locked.

Signed-off-by: John Ogness <john.ogness@linutronix.de>
Link: https://lore.kernel.org/r/20230525093159.223817-9-john.ogness@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250.h
drivers/tty/serial/8250/8250_aspeed_vuart.c
drivers/tty/serial/8250/8250_mtk.c
drivers/tty/serial/8250/8250_omap.c
drivers/tty/serial/8250/8250_port.c