[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <VE1PR04MB668747A445A3882DCDAE60358F1A0@VE1PR04MB6687.eurprd04.prod.outlook.com>
Date: Thu, 13 Feb 2020 21:25:13 +0000
From: Leo Li <leoyang.li@....com>
To: Rasmus Villemoes <linux@...musvillemoes.dk>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Jiri Slaby <jslaby@...e.com>, Timur Tabi <timur@...nel.org>
CC: Qiang Zhao <qiang.zhao@....com>,
"linuxppc-dev@...ts.ozlabs.org" <linuxppc-dev@...ts.ozlabs.org>,
Scott Wood <oss@...error.net>,
Christophe Leroy <christophe.leroy@....fr>,
"linux-serial@...r.kernel.org" <linux-serial@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH] serial: cpm_uart: call cpm_muram_init before registering
console
> -----Original Message-----
> From: Rasmus Villemoes <linux@...musvillemoes.dk>
> Sent: Thursday, February 13, 2020 5:44 AM
> To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>; Jiri Slaby
> <jslaby@...e.com>; Timur Tabi <timur@...nel.org>; Leo Li
> <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>
Acked-by: Li Yang <leoyang.li@....com>
> ---
>
> 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