Console init revamp.

From: David Woodhouse (dwmw2@infradead.org)
Date: Wed Nov 06 2002 - 11:32:42 EST


This removes all the #ifdef'd calls to initialise individual consoles in
con_init(), and replaces them with a mechanism akin to initcalls.

I've fixed all the vmlinux.lds.S files except uCLinux. Greg, how about some
appropriate #includes to reduce the duplication there?

===== drivers/char/tty_io.c 1.44 vs edited =====
--- 1.44/drivers/char/tty_io.c Sat Oct 12 02:12:11 2002
+++ edited/drivers/char/tty_io.c Wed Nov 6 16:18:58 2002
@@ -112,7 +112,15 @@
 #define TTY_PARANOIA_CHECK 1
 #define CHECK_TTY_COUNT 1
 
-struct termios tty_std_termios; /* for the benefit of tty drivers */
+struct termios tty_std_termios = { /* for the benefit of tty drivers */
+ .c_iflag = ICRNL | IXON,
+ .c_oflag = OPOST | ONLCR,
+ .c_cflag = B38400 | CS8 | CREAD | HUPCL,
+ .c_lflag = ISIG | ICANON | ECHO | ECHOE | ECHOK |
+ ECHOCTL | ECHOKE | IEXTEN,
+ .c_cc = INIT_C_CC
+};
+
 LIST_HEAD(tty_drivers); /* linked list of tty drivers */
 struct tty_ldisc ldiscs[NR_LDISCS]; /* line disc dispatch table */
 
@@ -140,24 +148,12 @@
               unsigned int cmd, unsigned long arg);
 static int tty_fasync(int fd, struct file * filp, int on);
 extern int vme_scc_init (void);
-extern long vme_scc_console_init(void);
 extern int serial167_init(void);
-extern long serial167_console_init(void);
-extern void console_8xx_init(void);
 extern int rs_8xx_init(void);
-extern void mac_scc_console_init(void);
-extern void hwc_console_init(void);
 extern void hwc_tty_init(void);
-extern void con3215_init(void);
 extern void tty3215_init(void);
-extern void tub3270_con_init(void);
 extern void tub3270_init(void);
-extern void uart_console_init(void);
-extern void sgi_serial_console_init(void);
-extern void sci_console_init(void);
-extern void tx3912_console_init(void);
 extern void tx3912_rs_init(void);
-extern void hvc_console_init(void);
 
 #ifndef MIN
 #define MIN(a,b) ((a) < (b) ? (a) : (b))
@@ -2157,82 +2153,24 @@
  */
 void __init console_init(void)
 {
+ initcall_t *call;
+
         /* Setup the default TTY line discipline. */
- memset(ldiscs, 0, sizeof(ldiscs));
         (void) tty_register_ldisc(N_TTY, &tty_ldisc_N_TTY);
 
         /*
- * Set up the standard termios. Individual tty drivers may
- * deviate from this; this is used as a template.
- */
- memset(&tty_std_termios, 0, sizeof(struct termios));
- memcpy(tty_std_termios.c_cc, INIT_C_CC, NCCS);
- tty_std_termios.c_iflag = ICRNL | IXON;
- tty_std_termios.c_oflag = OPOST | ONLCR;
- tty_std_termios.c_cflag = B38400 | CS8 | CREAD | HUPCL;
- tty_std_termios.c_lflag = ISIG | ICANON | ECHO | ECHOE | ECHOK |
- ECHOCTL | ECHOKE | IEXTEN;
-
- /*
          * set up the console device so that later boot sequences can
          * inform about problems etc..
          */
 #ifdef CONFIG_EARLY_PRINTK
         disable_early_printk();
 #endif
-#ifdef CONFIG_VT
- con_init();
-#endif
-#ifdef CONFIG_AU1000_SERIAL_CONSOLE
- au1000_serial_console_init();
-#endif
-#ifdef CONFIG_SERIAL_CONSOLE
-#if (defined(CONFIG_8xx) || defined(CONFIG_8260))
- console_8xx_init();
-#elif defined(CONFIG_MAC_SERIAL)
- mac_scc_console_init();
-#elif defined(CONFIG_PARISC)
- pdc_console_init();
-#elif defined(CONFIG_SERIAL)
- serial_console_init();
-#endif /* CONFIG_8xx */
-#ifdef CONFIG_SGI_SERIAL
- sgi_serial_console_init();
-#endif
-#if defined(CONFIG_MVME162_SCC) || defined(CONFIG_BVME6000_SCC) || defined(CONFIG_MVME147_SCC)
- vme_scc_console_init();
-#endif
-#if defined(CONFIG_SERIAL167)
- serial167_console_init();
-#endif
-#if defined(CONFIG_SH_SCI)
- sci_console_init();
-#endif
-#endif
-#ifdef CONFIG_TN3270_CONSOLE
- tub3270_con_init();
-#endif
-#ifdef CONFIG_TN3215
- con3215_init();
-#endif
-#ifdef CONFIG_HWC
- hwc_console_init();
-#endif
-#ifdef CONFIG_STDIO_CONSOLE
- stdio_console_init();
-#endif
-#ifdef CONFIG_SERIAL_CORE_CONSOLE
- uart_console_init();
-#endif
-#ifdef CONFIG_ARC_CONSOLE
- arc_console_init();
-#endif
-#ifdef CONFIG_SERIAL_TX3912_CONSOLE
- tx3912_console_init();
-#endif
-#ifdef CONFIG_HVC_CONSOLE
- hvc_console_init();
-#endif
+
+ call = &__con_initcall_start;
+ while (call < &__con_initcall_end) {
+ (*call)();
+ call++;
+ };
 }
 
 static struct tty_driver dev_tty_driver, dev_syscons_driver;
===== drivers/serial/core.c 1.17 vs edited =====
--- 1.17/drivers/serial/core.c Sat Nov 2 16:52:24 2002
+++ edited/drivers/serial/core.c Wed Nov 6 16:19:03 2002
@@ -1827,42 +1827,6 @@
 
         return 0;
 }
-
-extern void ambauart_console_init(void);
-extern void anakin_console_init(void);
-extern void clps711xuart_console_init(void);
-extern void rs285_console_init(void);
-extern void sa1100_rs_console_init(void);
-extern void serial8250_console_init(void);
-extern void uart00_console_init(void);
-
-/*
- * Central "initialise all serial consoles" container. Needs to be killed.
- */
-void __init uart_console_init(void)
-{
-#ifdef CONFIG_SERIAL_AMBA_CONSOLE
- ambauart_console_init();
-#endif
-#ifdef CONFIG_SERIAL_ANAKIN_CONSOLE
- anakin_console_init();
-#endif
-#ifdef CONFIG_SERIAL_CLPS711X_CONSOLE
- clps711xuart_console_init();
-#endif
-#ifdef CONFIG_SERIAL_21285_CONSOLE
- rs285_console_init();
-#endif
-#ifdef CONFIG_SERIAL_SA1100_CONSOLE
- sa1100_rs_console_init();
-#endif
-#ifdef CONFIG_SERIAL_8250_CONSOLE
- serial8250_console_init();
-#endif
-#ifdef CONFIG_SERIAL_UART00_CONSOLE
- uart00_console_init();
-#endif
-}
 #endif /* CONFIG_SERIAL_CORE_CONSOLE */
 
 #ifdef CONFIG_PM
===== drivers/char/amiserial.c 1.10 vs edited =====
--- 1.10/drivers/char/amiserial.c Mon Jul 22 14:42:36 2002
+++ edited/drivers/char/amiserial.c Wed Nov 6 16:18:57 2002
@@ -2322,10 +2322,11 @@
 /*
  * Register console.
  */
-void __init serial_console_init(void)
+static void __init amiserial_console_init(void)
 {
         register_console(&sercons);
 }
+console_initcall(amiserial_console_init);
 #endif
 
 MODULE_LICENSE("GPL");
===== drivers/char/decserial.c 1.2 vs edited =====
--- 1.2/drivers/char/decserial.c Tue Feb 5 07:45:05 2002
+++ edited/drivers/char/decserial.c Wed Nov 6 16:18:57 2002
@@ -75,7 +75,7 @@
 /* serial_console_init handles the special case of starting
  * up the console on the serial port
  */
-void __init serial_console_init(void)
+static void __init decserial_console_init(void)
 {
 #if defined(CONFIG_ZS) && defined(CONFIG_DZ)
     if (IOASIC)
@@ -94,5 +94,6 @@
 
 #endif
 }
+console_initcall(decserial_console_init);
 
 #endif
===== drivers/char/hvc_console.c 1.9 vs edited =====
--- 1.9/drivers/char/hvc_console.c Sun Sep 15 19:35:38 2002
+++ edited/drivers/char/hvc_console.c Wed Nov 6 16:18:57 2002
@@ -348,11 +348,12 @@
         index: -1,
 };
 
-int __init hvc_console_init(void)
+static int __init hvc_console_init(void)
 {
         register_console(&hvc_con_driver);
         return 0;
 }
+console_initcall(hvc_console_init);
 
 module_init(hvc_init);
 module_exit(hvc_exit);
===== drivers/char/serial167.c 1.12 vs edited =====
--- 1.12/drivers/char/serial167.c Mon Oct 7 19:39:20 2002
+++ edited/drivers/char/serial167.c Wed Nov 6 16:18:58 2002
@@ -2836,7 +2836,7 @@
 };
 
 
-void __init serial167_console_init(void)
+static void __init serial167_console_init(void)
 {
         if (vme_brdtype == VME_TYPE_MVME166 ||
                         vme_brdtype == VME_TYPE_MVME167 ||
@@ -2845,6 +2845,7 @@
                 register_console(&sercons);
         }
 }
+console_initcall(serial167_console_init);
 
 #ifdef CONFIG_REMOTE_DEBUG
 void putDebugChar (int c)
===== drivers/char/serial_tx3912.c 1.6 vs edited =====
--- 1.6/drivers/char/serial_tx3912.c Tue Sep 10 10:10:44 2002
+++ edited/drivers/char/serial_tx3912.c Wed Nov 6 16:18:58 2002
@@ -1054,9 +1054,10 @@
         index: -1
 };
 
-void __init tx3912_console_init(void)
+static void __init tx3912_console_init(void)
 {
         register_console(&sercons);
 }
+console_initcall(tx3912_console_init);
 
 #endif
===== drivers/char/sh-sci.c 1.11 vs edited =====
--- 1.11/drivers/char/sh-sci.c Tue Oct 1 17:10:55 2002
+++ edited/drivers/char/sh-sci.c Wed Nov 6 16:18:58 2002
@@ -1275,7 +1275,7 @@
 extern void sh_console_unregister (void);
 #endif
 
-void __init sci_console_init(void)
+static void __init sci_console_init(void)
 {
         register_console(&sercons);
 #ifdef CONFIG_SH_EARLY_PRINTK
@@ -1285,4 +1285,6 @@
         sh_console_unregister();
 #endif
 }
+console_initcall(sci_console_init);
+
 #endif /* CONFIG_SERIAL_CONSOLE */
===== drivers/char/vme_scc.c 1.8 vs edited =====
--- 1.8/drivers/char/vme_scc.c Tue Oct 22 21:51:04 2002
+++ edited/drivers/char/vme_scc.c Wed Nov 6 16:18:58 2002
@@ -1103,7 +1103,7 @@
 };
 
 
-void __init vme_scc_console_init(void)
+static void __init vme_scc_console_init(void)
 {
         if (vme_brdtype == VME_TYPE_MVME147 ||
                         vme_brdtype == VME_TYPE_MVME162 ||
@@ -1112,4 +1112,4 @@
                         vme_brdtype == VME_TYPE_BVME6000)
                 register_console(&sercons);
 }
-
+console_initcall(vme_scc_console_init);
===== drivers/char/vt.c 1.20 vs edited =====
--- 1.20/drivers/char/vt.c Tue Oct 1 17:56:05 2002
+++ edited/drivers/char/vt.c Wed Nov 6 16:18:58 2002
@@ -2435,7 +2435,7 @@
 struct tty_driver console_driver;
 static int console_refcount;
 
-void __init con_init(void)
+static void __init con_init(void)
 {
         const char *display_desc = NULL;
         unsigned int currcons = 0;
@@ -2484,6 +2484,7 @@
         register_console(&vt_console_driver);
 #endif
 }
+console_initcall(con_init);
 
 int __init vty_init(void)
 {
===== drivers/macintosh/macserial.c 1.10 vs edited =====
--- 1.10/drivers/macintosh/macserial.c Mon Oct 7 19:39:20 2002
+++ edited/drivers/macintosh/macserial.c Wed Nov 6 16:18:58 2002
@@ -3088,10 +3088,12 @@
 /*
  * Register console.
  */
-void __init mac_scc_console_init(void)
+static void __init mac_scc_console_init(void)
 {
         register_console(&sercons);
 }
+console_initcall(mac_scc_console_init);
+
 #endif /* ifdef CONFIG_SERIAL_CONSOLE */
 
 #ifdef CONFIG_KGDB
===== drivers/s390/char/con3215.c 1.9 vs edited =====
--- 1.9/drivers/s390/char/con3215.c Wed Oct 9 15:01:20 2002
+++ edited/drivers/s390/char/con3215.c Wed Nov 6 16:18:59 2002
@@ -1052,7 +1052,7 @@
  * 3215 console initialization code called from console_init().
  * NOTE: This is called before kmalloc is available.
  */
-void __init con3215_init(void)
+static void __init con3215_init(void)
 {
 #ifdef CONFIG_TN3215_CONSOLE
         raw3215_info *raw;
@@ -1126,6 +1126,7 @@
         }
 #endif
 }
+console_initcall(con3215_init);
 
 /*
  * 3215 tty registration code called from tty_init().
===== drivers/s390/char/hwc_con.c 1.5 vs edited =====
--- 1.5/drivers/s390/char/hwc_con.c Thu Jun 6 22:29:46 2002
+++ edited/drivers/s390/char/hwc_con.c Wed Nov 6 16:18:59 2002
@@ -73,7 +73,7 @@
 
 #endif
 
-void __init
+static void __init
 hwc_console_init (void)
 {
         if (!MACHINE_HAS_HWC)
@@ -90,3 +90,4 @@
 
         return;
 }
+console_initcall(hwc_console_init);
===== drivers/s390/char/tuball.c 1.8 vs edited =====
--- 1.8/drivers/s390/char/tuball.c Wed Oct 9 15:01:46 2002
+++ edited/drivers/s390/char/tuball.c Wed Nov 6 16:18:59 2002
@@ -131,7 +131,7 @@
 #else
 #define tub3270_con_devno console_device
 
-void __init tub3270_con_init(void)
+static void __init tub3270_con_init(void)
 {
         tub3270_con_bcb.bc_len = 65536;
         if (!CONSOLE_IS_3270)
@@ -140,6 +140,8 @@
                 tub3270_con_bcb.bc_len);
         register_console(&tub3270_con);
 }
+console_initcall(tub3270_con_init);
+
 #endif
 
 static kdev_t
===== drivers/serial/21285.c 1.10 vs edited =====
--- 1.10/drivers/serial/21285.c Sat Nov 2 14:11:04 2002
+++ edited/drivers/serial/21285.c Wed Nov 6 16:19:00 2002
@@ -471,11 +471,12 @@
         .index = -1,
 };
 
-void __init rs285_console_init(void)
+static void __init rs285_console_init(void)
 {
         serial21285_setup_ports();
         register_console(&serial21285_console);
 }
+console_initcall(rs283_console_init);
 
 #define SERIAL_21285_CONSOLE &serial21285_console
 #else
===== drivers/serial/8250.c 1.22 vs edited =====
--- 1.22/drivers/serial/8250.c Sat Nov 2 16:47:18 2002
+++ edited/drivers/serial/8250.c Wed Nov 6 16:19:00 2002
@@ -1908,11 +1908,12 @@
         .index = -1,
 };
 
-void __init serial8250_console_init(void)
+static void __init serial8250_console_init(void)
 {
         serial8250_isa_init_ports();
         register_console(&serial8250_console);
 }
+console_initcall(serial8250_console_init);
 
 #define SERIAL8250_CONSOLE &serial8250_console
 #else
===== drivers/serial/amba.c 1.12 vs edited =====
--- 1.12/drivers/serial/amba.c Mon Nov 4 14:58:44 2002
+++ edited/drivers/serial/amba.c Wed Nov 6 16:19:01 2002
@@ -693,10 +693,11 @@
         .index = -1,
 };
 
-void __init ambauart_console_init(void)
+static void __init ambauart_console_init(void)
 {
         register_console(&amba_console);
 }
+console_initcall(ambauart_console_init);
 
 #define AMBA_CONSOLE &amba_console
 #else
===== drivers/serial/anakin.c 1.9 vs edited =====
--- 1.9/drivers/serial/anakin.c Mon Nov 4 14:58:44 2002
+++ edited/drivers/serial/anakin.c Wed Nov 6 16:19:01 2002
@@ -478,11 +478,12 @@
         .index = -1,
 };
 
-void __init
+static void __init
 anakin_console_init(void)
 {
         register_console(&anakin_console);
 }
+console_initcall(anakin_console_init);
 
 #define ANAKIN_CONSOLE &anakin_console
 #else
===== drivers/serial/clps711x.c 1.9 vs edited =====
--- 1.9/drivers/serial/clps711x.c Mon Nov 4 14:58:45 2002
+++ edited/drivers/serial/clps711x.c Wed Nov 6 16:19:02 2002
@@ -553,10 +553,11 @@
         .index = -1,
 };
 
-void __init clps711xuart_console_init(void)
+static void __init clps711xuart_console_init(void)
 {
         register_console(&clps711x_console);
 }
+console_initcall(clps711xuart_console_init);
 
 #define CLPS711X_CONSOLE &clps711x_console
 #else
===== drivers/serial/sa1100.c 1.12 vs edited =====
--- 1.12/drivers/serial/sa1100.c Sat Nov 2 14:11:05 2002
+++ edited/drivers/serial/sa1100.c Wed Nov 6 16:19:03 2002
@@ -813,11 +813,12 @@
         .index = -1,
 };
 
-void __init sa1100_rs_console_init(void)
+static void __init sa1100_rs_console_init(void)
 {
         sa1100_init_ports();
         register_console(&sa1100_console);
 }
+console_initcall(sa1100_rs_console_init);
 
 #define SA1100_CONSOLE &sa1100_console
 #else
===== drivers/serial/uart00.c 1.7 vs edited =====
--- 1.7/drivers/serial/uart00.c Mon Nov 4 14:58:45 2002
+++ edited/drivers/serial/uart00.c Wed Nov 6 16:19:04 2002
@@ -628,10 +628,11 @@
         .index = 0,
 };
 
-void __init uart00_console_init(void)
+static void __init uart00_console_init(void)
 {
         register_console(&uart00_console);
 }
+console_initcall(uart00_console_init);
 
 #define UART00_CONSOLE &uart00_console
 #else
===== drivers/sgi/char/sgiserial.c 1.6 vs edited =====
--- 1.6/drivers/sgi/char/sgiserial.c Mon Oct 7 19:39:20 2002
+++ edited/drivers/sgi/char/sgiserial.c Wed Nov 6 16:19:04 2002
@@ -2269,8 +2269,10 @@
 /*
  * Register console.
  */
-void __init sgi_serial_console_init(void)
+static void __init sgi_serial_console_init(void)
 {
         register_console(&sgi_console_driver);
 }
+console_initcall(sgi_serial_console_init);
+
 __initcall(rs_init);
===== include/linux/init.h 1.16 vs edited =====
--- 1.16/include/linux/init.h Sat Oct 26 01:17:41 2002
+++ edited/include/linux/init.h Wed Nov 6 16:19:04 2002
@@ -49,6 +49,7 @@
 typedef void (*exitcall_t)(void);
 
 extern initcall_t __initcall_start, __initcall_end;
+extern initcall_t __con_initcall_start, __con_initcall_end;
 
 /* initcalls are now grouped by functionality into separate
  * subsections. Ordering inside the subsections is determined
@@ -72,6 +73,9 @@
 
 #define __exitcall(fn) \
         static exitcall_t __exitcall_##fn __exit_call = fn
+
+#define console_initcall(fn) \
+ static initcall_t __initcall_##fn __attribute__ ((unused,__section__ (".con_initcall.init")))=fn
 
 /*
  * Used for kernel command line parameter setup
===== arch/alpha/vmlinux.lds.S 1.12 vs edited =====
--- 1.12/arch/alpha/vmlinux.lds.S Tue Nov 5 16:08:10 2002
+++ edited/arch/alpha/vmlinux.lds.S Wed Nov 6 16:18:52 2002
@@ -73,6 +73,12 @@
         __initramfs_end = .;
   }
 
+ .con_initcall.init ALIGN(8): {
+ __con_initcall_start = .;
+ *(.con_initcall.init)
+ __con_initcall_end = .;
+ }
+
   .data.percpu ALIGN(64): {
         __per_cpu_start = .;
         *(.data.percpu)
===== arch/arm/vmlinux-armo.lds.in 1.10 vs edited =====
--- 1.10/arch/arm/vmlinux-armo.lds.in Sun Oct 20 01:10:46 2002
+++ edited/arch/arm/vmlinux-armo.lds.in Wed Nov 6 16:18:52 2002
@@ -35,6 +35,9 @@
                         *(.initcall6.init)
                         *(.initcall7.init)
                 __initcall_end = .;
+ __con_initcall_start = .;
+ *(.con_initcall.init)
+ __con_initcall_end = .;
                 . = ALIGN(32768);
                 __init_end = .;
         }
===== arch/arm/vmlinux-armv.lds.in 1.14 vs edited =====
--- 1.14/arch/arm/vmlinux-armv.lds.in Tue Nov 5 17:12:16 2002
+++ edited/arch/arm/vmlinux-armv.lds.in Wed Nov 6 16:22:05 2002
@@ -35,6 +35,9 @@
                         *(.initcall6.init)
                         *(.initcall7.init)
                 __initcall_end = .;
+ __con_initcall_start = .;
+ *(.con_initcall.init)
+ __con_initcall_end = .;
                 . = ALIGN(32);
                 __initramfs_start = .;
                         usr/built-in.o(.init.ramfs)
===== arch/cris/vmlinux.lds.S 1.12 vs edited =====
--- 1.12/arch/cris/vmlinux.lds.S Wed Sep 18 00:37:53 2002
+++ edited/arch/cris/vmlinux.lds.S Wed Nov 6 16:18:53 2002
@@ -73,7 +73,12 @@
                 *(.initcall6.init);
                 *(.initcall7.init);
                 __initcall_end = .;
-
+ }
+ .con_initcall.init : {
+ __con_initcall_start = .;
+ *(.con_initcall.init)
+ __con_initcall_end = .;
+
                 /* We fill to the next page, so we can discard all init
                    pages without needing to consider what payload might be
                    appended to the kernel image. */
===== arch/i386/vmlinux.lds.S 1.19 vs edited =====
--- 1.19/arch/i386/vmlinux.lds.S Mon Nov 4 22:04:41 2002
+++ edited/arch/i386/vmlinux.lds.S Wed Nov 6 16:21:25 2002
@@ -77,6 +77,9 @@
         *(.initcall7.init)
   }
   __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : { *(.con_initcall.init) }
+ __con_initcall_end = .;
   . = ALIGN(4096);
   __initramfs_start = .;
   .init.ramfs : { *(.init.ramfs) }
===== arch/ia64/vmlinux.lds.S 1.17 vs edited =====
--- 1.17/arch/ia64/vmlinux.lds.S Fri Nov 1 05:45:22 2002
+++ edited/arch/ia64/vmlinux.lds.S Wed Nov 6 16:18:53 2002
@@ -114,6 +114,10 @@
                 *(.initcall7.init)
         }
   __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : AT(ADDR(.con_initcall.init) - PAGE_OFFSET)
+ { *(.con_initcall.init) }
+ __con_initcall_end = .;
   . = ALIGN(PAGE_SIZE);
   __init_end = .;
 
===== arch/m68k/vmlinux-std.lds 1.9 vs edited =====
--- 1.9/arch/m68k/vmlinux-std.lds Wed Oct 23 17:34:05 2002
+++ edited/arch/m68k/vmlinux-std.lds Wed Nov 6 16:18:54 2002
@@ -58,6 +58,9 @@
         *(.initcall7.init)
   }
   __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : { *(.con_initcall.init) }
+ __con_initcall_end = .;
   . = ALIGN(8192);
   __init_end = .;
 
===== arch/m68k/vmlinux-sun3.lds 1.6 vs edited =====
--- 1.6/arch/m68k/vmlinux-sun3.lds Wed Oct 23 17:34:05 2002
+++ edited/arch/m68k/vmlinux-sun3.lds Wed Nov 6 16:18:54 2002
@@ -54,6 +54,9 @@
                 *(.initcall7.init)
         }
         __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : { *(.con_initcall.init) }
+ __con_initcall_end = .;
         . = ALIGN(8192);
         __init_end = .;
         .init.task : { *(init_task) }
===== arch/mips/vmlinux.lds.S 1.4 vs edited =====
--- 1.4/arch/mips/vmlinux.lds.S Wed Sep 18 00:38:49 2002
+++ edited/arch/mips/vmlinux.lds.S Wed Nov 6 16:18:54 2002
@@ -54,6 +54,9 @@
         *(.initcall7.init)
   }
   __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : { *(.con_initcall.init) }
+ __con_initcall_end = .;
   . = ALIGN(4096); /* Align double page for init_task_union */
   __init_end = .;
 
===== arch/mips/arc/arc_con.c 1.1 vs edited =====
--- 1.1/arch/mips/arc/arc_con.c Tue Feb 5 18:12:45 2002
+++ edited/arch/mips/arc/arc_con.c Wed Nov 6 16:18:54 2002
@@ -63,7 +63,8 @@
  * Register console.
  */
 
-void __init arc_console_init(void)
+static void __init arc_console_init(void)
 {
         register_console(&arc_cons);
 }
+console_initcall(arc_console_init);
===== arch/mips/au1000/common/serial.c 1.4 vs edited =====
--- 1.4/arch/mips/au1000/common/serial.c Tue Sep 17 18:26:46 2002
+++ edited/arch/mips/au1000/common/serial.c Wed Nov 6 16:18:55 2002
@@ -3054,10 +3054,11 @@
 /*
  * Register console.
  */
-void __init au1000_serial_console_init(void)
+static void __init au1000_serial_console_init(void)
 {
         register_console(&sercons);
 }
+console_initcall(au1000_serial_console_init);
 #endif
 
 /*
===== arch/mips64/vmlinux.lds.S 1.4 vs edited =====
--- 1.4/arch/mips64/vmlinux.lds.S Sat Aug 17 04:08:39 2002
+++ edited/arch/mips64/vmlinux.lds.S Wed Nov 6 16:18:55 2002
@@ -50,6 +50,9 @@
         *(.initcall7.init)
   }
   __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : { *(.con_initcall.init) }
+ __con_initcall_end = .;
   . = ALIGN(4096); /* Align double page for init_task_union */
   __init_end = .;
 
===== arch/parisc/vmlinux.lds.S 1.6 vs edited =====
--- 1.6/arch/parisc/vmlinux.lds.S Mon Oct 28 10:32:57 2002
+++ edited/arch/parisc/vmlinux.lds.S Wed Nov 6 16:18:55 2002
@@ -79,6 +79,9 @@
         *(.initcall7.init)
   }
   __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : { *(.con_initcall.init) }
+ __con_initcall_end = .;
   . = ALIGN(32);
   __per_cpu_start = .;
   .data.percpu : { *(.data.percpu) }
===== arch/ppc/vmlinux.lds.S 1.12 vs edited =====
--- 1.12/arch/ppc/vmlinux.lds.S Fri Oct 18 13:24:04 2002
+++ edited/arch/ppc/vmlinux.lds.S Wed Nov 6 16:18:55 2002
@@ -112,6 +112,9 @@
         *(.initcall7.init)
   }
   __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : { *(.con_initcall.init) }
+ __con_initcall_end = .;
   . = ALIGN(32);
   __per_cpu_start = .;
   .data.percpu : { *(.data.percpu) }
===== arch/ppc/8xx_io/uart.c 1.16 vs edited =====
--- 1.16/arch/ppc/8xx_io/uart.c Wed Sep 18 07:26:40 2002
+++ edited/arch/ppc/8xx_io/uart.c Wed Nov 6 16:18:55 2002
@@ -2522,12 +2522,11 @@
 /*
  * Register console.
  */
-long __init console_8xx_init(long kmem_start, long kmem_end)
+static void __init console_8xx_init(long kmem_start, long kmem_end)
 {
         register_console(&sercons);
- return kmem_start;
 }
-
+console_initcall(console_8xx_init);
 #endif
 
 /* Index in baud rate table of the default console baud rate.
===== arch/ppc64/vmlinux.lds.S 1.6 vs edited =====
--- 1.6/arch/ppc64/vmlinux.lds.S Tue Sep 17 23:58:28 2002
+++ edited/arch/ppc64/vmlinux.lds.S Wed Nov 6 16:18:55 2002
@@ -110,6 +110,9 @@
         *(.initcall7.init)
   }
   __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : { *(.con_initcall.init) }
+ __con_initcall_end = .;
   . = ALIGN(32);
   __per_cpu_start = .;
   .data.percpu : { *(.data.percpu) }
===== arch/s390/vmlinux.lds.S 1.4 vs edited =====
--- 1.4/arch/s390/vmlinux.lds.S Wed Oct 9 15:01:28 2002
+++ edited/arch/s390/vmlinux.lds.S Wed Nov 6 16:18:55 2002
@@ -64,6 +64,9 @@
         *(.initcall7.init)
   }
   __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : { *(.con_initcall.init) }
+ __con_initcall_end = .;
   . = ALIGN(256);
   __per_cpu_start = .;
   .data.percpu : { *(.data.percpu) }
===== arch/s390x/vmlinux.lds.S 1.4 vs edited =====
--- 1.4/arch/s390x/vmlinux.lds.S Wed Oct 9 15:01:28 2002
+++ edited/arch/s390x/vmlinux.lds.S Wed Nov 6 16:18:55 2002
@@ -64,6 +64,9 @@
         *(.initcall7.init)
   }
   __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : { *(.con_initcall.init) }
+ __con_initcall_end = .;
   . = ALIGN(256);
   __per_cpu_start = .;
   .data.percpu : { *(.data.percpu) }
===== arch/sh/vmlinux.lds.S 1.6 vs edited =====
--- 1.6/arch/sh/vmlinux.lds.S Fri May 10 18:24:46 2002
+++ edited/arch/sh/vmlinux.lds.S Wed Nov 6 16:18:56 2002
@@ -74,6 +74,9 @@
         *(.initcall7.init)
   }
   __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : { *(.con_initcall.init) }
+ __con_initcall_end = .;
   __machvec_start = .;
   .machvec.init : { *(.machvec.init) }
   __machvec_end = .;
===== arch/sparc/vmlinux.lds.S 1.9 vs edited =====
--- 1.9/arch/sparc/vmlinux.lds.S Tue Nov 5 15:52:17 2002
+++ edited/arch/sparc/vmlinux.lds.S Wed Nov 6 16:21:10 2002
@@ -56,6 +56,9 @@
         *(.initcall7.init)
   }
   __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : { *(.con_initcall.init) }
+ __con_initcall_end = .;
   . = ALIGN(4096);
   __initramfs_start = .;
   .init.ramfs : { *(.init.ramfs) }
===== arch/sparc64/vmlinux.lds.S 1.10 vs edited =====
--- 1.10/arch/sparc64/vmlinux.lds.S Tue Nov 5 15:50:52 2002
+++ edited/arch/sparc64/vmlinux.lds.S Wed Nov 6 16:21:17 2002
@@ -57,6 +57,9 @@
         *(.initcall7.init)
   }
   __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : { *(.con_initcall.init) }
+ __con_initcall_end = .;
   . = ALIGN(8192);
   __initramfs_start = .;
   .init.ramfs : { *(.init.ramfs) }
===== arch/um/drivers/stdio_console.c 1.3 vs edited =====
--- 1.3/arch/um/drivers/stdio_console.c Wed Oct 16 02:44:46 2002
+++ edited/arch/um/drivers/stdio_console.c Wed Nov 6 16:18:57 2002
@@ -185,12 +185,13 @@
                                                console_device, console_setup,
                                                CON_PRINTBUFFER);
 
-void stdio_console_init(void)
+static void __init stdio_console_init(void)
 {
         INIT_LIST_HEAD(&vts[0].chan_list);
         list_add(&init_console_chan.list, &vts[0].chan_list);
         register_console(&stdiocons);
 }
+console_initcall(stdio_console_init);
 
 static int console_chan_setup(char *str)
 {
===== arch/x86_64/vmlinux.lds.S 1.7 vs edited =====
--- 1.7/arch/x86_64/vmlinux.lds.S Mon Oct 21 14:47:25 2002
+++ edited/arch/x86_64/vmlinux.lds.S Wed Nov 6 16:18:57 2002
@@ -98,6 +98,9 @@
         *(.initcall7.init)
   }
   __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : { *(.con_initcall.init) }
+ __con_initcall_end = .;
   . = ALIGN(32);
   __per_cpu_start = .;
   .data.percpu : { *(.data.percpu) }

--
dwmw2

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



This archive was generated by hypermail 2b29 : Thu Nov 07 2002 - 22:00:43 EST