Message ID | 20200213114342.21712-1-linux@rasmusvillemoes.dk (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | serial: cpm_uart: call cpm_muram_init before registering console | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | Successfully applied on branch powerpc/merge (a5bc6e124219546a81ce334dc9b16483d55e9abf) |
snowpatch_ozlabs/build-ppc64le | success | Build succeeded |
snowpatch_ozlabs/build-ppc64be | success | Build succeeded |
snowpatch_ozlabs/build-ppc64e | success | Build succeeded |
snowpatch_ozlabs/build-pmac32 | success | Build succeeded |
snowpatch_ozlabs/checkpatch | fail | total: 1 errors, 0 warnings, 0 checks, 7 lines checked |
snowpatch_ozlabs/needsstable | success | Patch fixes a commit that hasn't been released yet |
Le 13/02/2020 à 12:43, Rasmus Villemoes a écrit : > 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@c-s.fr> > Fixes: b6231ea2b3c6 (soc: fsl: qe: drop broken lazy call of cpm_muram_init()) > Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Tested-by: Christophe Leroy <christophe.leroy@c-s.fr> > --- > > 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; > } >
On Thu, Feb 13, 2020 at 12:43:42PM +0100, Rasmus Villemoes wrote: > 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@c-s.fr> > Fixes: b6231ea2b3c6 (soc: fsl: qe: drop broken lazy call of cpm_muram_init()) > Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> > --- > > Christophe, can I get you to add a formal Tested-by? > > I'm not sure which tree this should go through. I can take it, thanks. greg k-h
> -----Original Message----- > From: Rasmus Villemoes <linux@rasmusvillemoes.dk> > Sent: Thursday, February 13, 2020 5:44 AM > To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>; Jiri Slaby > <jslaby@suse.com>; Timur Tabi <timur@kernel.org>; Leo Li > <leoyang.li@nxp.com>; Rasmus Villemoes <linux@rasmusvillemoes.dk> > Cc: Qiang Zhao <qiang.zhao@nxp.com>; linuxppc-dev@lists.ozlabs.org; Scott > Wood <oss@buserror.net>; Christophe Leroy <christophe.leroy@c-s.fr>; > linux-serial@vger.kernel.org; linux-kernel@vger.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@c-s.fr> > Fixes: b6231ea2b3c6 (soc: fsl: qe: drop broken lazy call of cpm_muram_init()) > Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Acked-by: Li Yang <leoyang.li@nxp.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
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; }
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@c-s.fr> Fixes: b6231ea2b3c6 (soc: fsl: qe: drop broken lazy call of cpm_muram_init()) Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.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(+)