Re: [PATCH RESEND 3/4] m68k/mvme16x: adopt common boot console

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Fri, 11 Apr 2014, Geert Uytterhoeven wrote:


+#ifdef CONFIG_MVME16X
+static struct console early_console_instance = {
+#else
 static struct console early_console_instance __initdata = {
+#endif

+       if (MACH_IS_MVME16x)
+               early_console_instance.write = mvme16x_cons_write;
+       else
+               early_console_instance.write = debug_cons_write;

+       if (!early_console || MACH_IS_MVME16x)
                return 0;

I don't like these tests for MVME16X in (presumably) generic code.
Is there a way we can avoid this?


Some alternative approaches:

1) Somehow make the tests more precise: "are we running on MVME?"  
   becomes "is the console output code not in .init.text?"
   I don't know that this is feasible.

2) Mark the MVME console output routine __init (making it less useful).  
   If we make all users of earlyprintk lose the boot console at 
   __late_initcall() time, then we can call mvme16x_cons_write() from 
   debug_cons_write().

3) Move all of the head.S console code and data out of .init sections, for 
   all platforms. Not practical I think.

4) If the bloat is acceptable, maybe we could scrap the __init attributes 
   for early_console_instance and debug_cons_write(). And call 
   mvme16x_cons_write() from debug_cons_write(). Then hide all these 
   routines and the __late_initcall within
   #if defined(CONFIG_AMIGA) || defined(CONFIG_ATARI) || ...
   #endif

Thoughts?

-- 
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux