Re: REGRESSION: serial_cs broken by 8250 changes
From: Andrew Morton
Date: Thu Aug 02 2007 - 19:36:41 EST
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.
-
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/