Re: [patch 06/18] m68k: Disable Amiga serial console support if modular

Geert Uytterhoeven
2008-10-14T07:29:29Z

On Mon, 13 Oct 2008, Paul Bolle wrote:
> On Mon, 2008-10-13 at 21:58 +0200, Geert Uytterhoeven wrote:
> > Apparently console_initcall() is not defined in the modular case.
>
> Yes, see include/linux/init.h:
> #ifndef MODULE
> [...]
> #define console_initcall(fn) \
> static initcall_t __initcall_##fn \
> __used __section(.con_initcall.init) = fn
> [...]
>
> > Any better alternative fix?
>
> Well, (a number of) other serial consoles cannot be selected if the
> corresponding serial driver is modular. Try:
> grep -B 2 -E "depends on .*=y" drivers/serial/Kconfig | \
> grep -A 2 -E "^config .*CONSOLE"
>
> For instance:
> config SERIAL_8250_CONSOLE
> bool "Console on 8250/16550 and compatible serial port"
> depends on SERIAL_8250=y

Yes, I saw those.

> Maybe this config entry (in arch/m68k/Kconfig) could be cleaned up (or
> split into multiple entries):
> config SERIAL_CONSOLE
> bool "Support for serial port console"
> depends on (AMIGA || ATARI || MAC || SUN3 || SUN3X || VME ||
> APOLLO) && (ATARI_MFPSER=y || ATARI_MIDI=y || MAC_SCC=y ||
> AMIGA_BUILTIN_SERIAL=y || GVPIOEXT=y || MULTIFACE_III_TTY=y || SERIAL=y
> || MVME147_SCC || SERIAL167 || MVME162_SCC || BVME6000_SCC || DN_SERIAL)
> [...]
>
> That "depends on" line seems likely to lead to problems like the one you
> ran into. But your patch (which I didn't test) is probably simpler.

Adding all those extra config symbols seems like a bit overkill to me...