]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
serial: sifive: lock port in startup()/shutdown() callbacks
authorRyo Takakura <ryotkkr98@gmail.com>
Sat, 12 Apr 2025 00:18:47 +0000 (09:18 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 May 2025 05:44:31 +0000 (07:44 +0200)
commitb59c7fefded5146d173178f0c26deae9a10ef6dc
treecf5d3dbe606ea62ac800314714a371cb4e79bedb
parent116c7d35b8f72eac383b9fd371d7c1a8ffc2968b
serial: sifive: lock port in startup()/shutdown() callbacks

commit e1ca3ff28ab1e2c1e70713ef3fa7943c725742c3 upstream.

startup()/shutdown() callbacks access SIFIVE_SERIAL_IE_OFFS.
The register is also accessed from write() callback.

If console were printing and startup()/shutdown() callback
gets called, its access to the register could be overwritten.

Add port->lock to startup()/shutdown() callbacks to make sure
their access to SIFIVE_SERIAL_IE_OFFS is synchronized against
write() callback.

Fixes: 45c054d0815b ("tty: serial: add driver for the SiFive UART")
Signed-off-by: Ryo Takakura <ryotkkr98@gmail.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Cc: stable@vger.kernel.org
Reviewed-by: John Ogness <john.ogness@linutronix.de>
Rule: add
Link: https://lore.kernel.org/stable/20250330003522.386632-1-ryotkkr98%40gmail.com
Link: https://lore.kernel.org/r/20250412001847.183221-1-ryotkkr98@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/sifive.c