Re: REGRESSION: serial_cs broken by 8250 changes

From: Yinghai Lu
Date: Thu Aug 02 2007 - 20:12:54 EST


Andrew Morton wrote:
On Thu, 02 Aug 2007 16:24:42 -0700
Yinghai Lu <Yinghai.Lu@xxxxxxx> wrote:

Daniel Ritz wrote:
commit 18a8bd949d6adb311ea816125ff65050df1f3f6e breaks serial_cs badly
with an oops, completely killing PCMCIA.

register_console() now calls console->early_setup(). which in case of
8250.c (the only user anyway) is serial8250_console_early_setup()
which is __init, calling 8250_early.c:serial8250_find_port_for_earlycon()
which is __init as well. boom.

the changelog mentions SERIAL_PORT_DFNS removal which happens to be
commit 7e92b4fc345f5b6f57585fbe5ffdb0f24d7c9b26. but this got reverted
by commit 57d4810ea0d9ca58a7bcc1336607f0cede0a2abf. so i'd suggest to
just revert the 8250 changes as well.

rgds
-daniel
Is there any flag or sign that init code has been released?

Nope.

We could use that to prevent init code to be called after code is freed.

If we can omit a function call without breaking anything then we shouldn't
have been calling that function at all ;)

It sounds like making serial8250_console_early_setup() and
serial8250_find_port_for_earlycon() non-__init will fix this.


yes, together update_console_cmdline in kernel/printk.c

Daniel,
can you test that in your setup?

Thanks

Yinghai Lu
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/