From: Sagar Shrikant Kadam <sagar.ka...@sifive.com> commit 17b4efdf4e4867079012a48ca10d965fe9d68822 upstream.
An uninitialised spin lock for sifive serial console raises a bad magic spin_lock error as reported and discussed here [1]. Initialising the spin lock resolves the issue. The fix is tested on HiFive Unleashed A00 board with Linux 5.7-rc4 and OpenSBI v0.7 [1] https://lore.kernel.org/linux-riscv/b9fe49483a903f404e7acc15a6efbef756db28ae.ca...@wdc.com Fixes: 45c054d0815b ("tty: serial: add driver for the SiFive UART") Reported-by: Atish Patra <atish.pa...@wdc.com> Signed-off-by: Sagar Shrikant Kadam <sagar.ka...@sifive.com> Reviewed-by: Palmer Dabbelt <palmerdabb...@google.com> Acked-by: Palmer Dabbelt <palmerdabb...@google.com> Cc: stable <sta...@vger.kernel.org> Link: https://lore.kernel.org/r/1589019852-21505-2-git-send-email-sagar.ka...@sifive.com Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> --- drivers/tty/serial/sifive.c | 1 + 1 file changed, 1 insertion(+) --- a/drivers/tty/serial/sifive.c +++ b/drivers/tty/serial/sifive.c @@ -840,6 +840,7 @@ console_initcall(sifive_console_init); static void __ssp_add_console_port(struct sifive_serial_port *ssp) { + spin_lock_init(&ssp->port.lock); sifive_serial_console_ports[ssp->port.line] = ssp; }