* [RFC PATCH 0/5] earlycon hang under some conditions
@ 2017-07-18 4:29 Jeffy Chen
2017-07-18 4:30 ` [RFC PATCH 3/5] serial: xuartps: Remove __init marking from early write Jeffy Chen
0 siblings, 1 reply; 2+ messages in thread
From: Jeffy Chen @ 2017-07-18 4:29 UTC (permalink / raw)
To: linux-arm-kernel
I was testing earlycon with 8250 dw serial console. And it hangs in
these cases:
1/ kernel hang when calling early write function after free_initmem:
a) the earlycon not disabled after the init code(due to keep_bootcon or
not specify a real console to switch to)
b) the early write func is marked as __init, for example 8250_early.
2/ kernel hang when calling early write function after disable unused
clks/pm domain:
a) the earlycon not disabled after the init code
b) the disable unused clks/pm domain kill the requiered clks/pm
domain, since they are not referenced by the earlycon.
3/ kernel hang when calling early write function after the serial
console driver runtime suspended:
a) the earlycon not disabled after the init code
b) the serial console driver's runtime suspend kills the requiered
clks/pm domain, since they are not referenced by the earlycon.
This serial fix 1/ case only.
Jeffy Chen (5):
serial: arc: Remove __init marking from early write
serial: omap: Remove __init marking from early write
serial: xuartps: Remove __init marking from early write
serial: 8250_ingenic: Remove __init marking from early write
serial: 8250_early: Remove __init marking from early write
drivers/tty/serial/8250/8250_early.c | 8 ++++----
drivers/tty/serial/8250/8250_ingenic.c | 8 ++++----
drivers/tty/serial/arc_uart.c | 4 ++--
drivers/tty/serial/omap-serial.c | 13 ++++++-------
drivers/tty/serial/xilinx_uartps.c | 2 +-
5 files changed, 17 insertions(+), 18 deletions(-)
--
2.1.4
^ permalink raw reply [flat|nested] 2+ messages in thread
* [RFC PATCH 3/5] serial: xuartps: Remove __init marking from early write
2017-07-18 4:29 [RFC PATCH 0/5] earlycon hang under some conditions Jeffy Chen
@ 2017-07-18 4:30 ` Jeffy Chen
0 siblings, 0 replies; 2+ messages in thread
From: Jeffy Chen @ 2017-07-18 4:30 UTC (permalink / raw)
To: linux-arm-kernel
The earlycon would be alive outside the init code in these cases:
1/ we have keep_bootcon in cmdline.
2/ we don't have a real console to switch to.
So remove the __init marking to avoid invalid memory access.
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
---
drivers/tty/serial/xilinx_uartps.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/tty/serial/xilinx_uartps.c b/drivers/tty/serial/xilinx_uartps.c
index fde55dc..31a630a 100644
--- a/drivers/tty/serial/xilinx_uartps.c
+++ b/drivers/tty/serial/xilinx_uartps.c
@@ -1163,7 +1163,7 @@ static void cdns_uart_console_putchar(struct uart_port *port, int ch)
writel(ch, port->membase + CDNS_UART_FIFO);
}
-static void __init cdns_early_write(struct console *con, const char *s,
+static void cdns_early_write(struct console *con, const char *s,
unsigned n)
{
struct earlycon_device *dev = con->data;
--
2.1.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-07-18 4:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-18 4:29 [RFC PATCH 0/5] earlycon hang under some conditions Jeffy Chen
2017-07-18 4:30 ` [RFC PATCH 3/5] serial: xuartps: Remove __init marking from early write Jeffy Chen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).