[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200213114342.21712-1-linux@rasmusvillemoes.dk>
Date: Thu, 13 Feb 2020 12:43:42 +0100
From: Rasmus Villemoes <linux@...musvillemoes.dk>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Jiri Slaby <jslaby@...e.com>, Timur Tabi <timur@...nel.org>,
Li Yang <leoyang.li@....com>,
Rasmus Villemoes <linux@...musvillemoes.dk>
Cc: Qiang Zhao <qiang.zhao@....com>, linuxppc-dev@...ts.ozlabs.org,
Scott Wood <oss@...error.net>,
Christophe Leroy <christophe.leroy@....fr>,
linux-serial@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH] serial: cpm_uart: call cpm_muram_init before registering console
Christophe reports that powerpc 8xx silently fails to 5.6-rc1. It turns
out I was wrong about nobody relying on the lazy initialization of the
cpm/qe muram in commit b6231ea2b3c6 (soc: fsl: qe: drop broken lazy
call of cpm_muram_init()).
Rather than reinstating the somewhat dubious lazy call (initializing a
currently held spinlock, and implicitly doing a GFP_KERNEL under that
spinlock), make sure that cpm_muram_init() is called early enough - I
thought the calls from the subsys_initcalls were good enough, but when
used by console drivers, that's obviously not the
case. cpm_muram_init() is safe to call twice (there's an early return
if it is already initialized), so keep the call from cpm_init() - in
case SERIAL_CPM_CONSOLE=n.
Reported-by: Christophe Leroy <christophe.leroy@....fr>
Fixes: b6231ea2b3c6 (soc: fsl: qe: drop broken lazy call of cpm_muram_init())
Signed-off-by: Rasmus Villemoes <linux@...musvillemoes.dk>
---
Christophe, can I get you to add a formal Tested-by?
I'm not sure which tree this should go through.
drivers/tty/serial/cpm_uart/cpm_uart_core.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/tty/serial/cpm_uart/cpm_uart_core.c b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
index 19d5a4cf29a6..d4b81b06e0cb 100644
--- a/drivers/tty/serial/cpm_uart/cpm_uart_core.c
+++ b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
@@ -1373,6 +1373,7 @@ static struct console cpm_scc_uart_console = {
static int __init cpm_uart_console_init(void)
{
+ cpm_muram_init();
register_console(&cpm_scc_uart_console);
return 0;
}
--
2.23.0
Powered by blists - more mailing lists