]> rtime.felk.cvut.cz Git - linux-imx.git/commitdiff
MIPS: early_printk: drop __init annotations
authorAaro Koskinen <aaro.koskinen@iki.fi>
Mon, 11 Feb 2013 20:51:49 +0000 (20:51 +0000)
committerJohn Crispin <blogic@openwrt.org>
Tue, 19 Feb 2013 08:36:37 +0000 (09:36 +0100)
We cannot use __init for earlyprintk code or data, since the kernel
parameter "keep_bootcon" allows leaving the boot console enabled.

Currently MIPS will crash/hang/die if you use keep_bootcon. The patch
fixes it at least on Lemote FuLoong mini-PC. Changes for other boards
were done based on what I could find with grep...

Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Patchwork: http://patchwork.linux-mips.org/patch/4935/
Signed-off-by: John Crispin <blogic@openwrt.org>
arch/mips/bcm63xx/early_printk.c
arch/mips/kernel/early_printk.c
arch/mips/loongson1/common/prom.c
arch/mips/sgi-ip27/ip27-console.c
arch/mips/txx9/generic/setup.c

index bf353c937df271a4826979ab0fc583bc6aa94bcc..aa8f7f9cc7a4b6c8783b97253c2bea11d7bc6921 100644 (file)
@@ -10,7 +10,7 @@
 #include <bcm63xx_io.h>
 #include <bcm63xx_regs.h>
 
-static void __init wait_xfered(void)
+static void wait_xfered(void)
 {
        unsigned int val;
 
@@ -22,7 +22,7 @@ static void __init wait_xfered(void)
        } while (1);
 }
 
-void __init prom_putchar(char c)
+void prom_putchar(char c)
 {
        wait_xfered();
        bcm_uart0_writel(c, UART_FIFO_REG);
index 9ae813eb782e9cebe160df532b113e456d7fe799..9e6440eaa455a4e68a0f9b2dce549a29b6b8188d 100644 (file)
@@ -14,8 +14,7 @@
 
 extern void prom_putchar(char);
 
-static void __init
-early_console_write(struct console *con, const char *s, unsigned n)
+static void early_console_write(struct console *con, const char *s, unsigned n)
 {
        while (n-- && *s) {
                if (*s == '\n')
@@ -25,7 +24,7 @@ early_console_write(struct console *con, const char *s, unsigned n)
        }
 }
 
-static struct console early_console __initdata = {
+static struct console early_console = {
        .name   = "early",
        .write  = early_console_write,
        .flags  = CON_PRINTBUFFER | CON_BOOT,
index 1f8e49f9886d0e9fda4545bbd2e600b5d34d23bb..54dee09b36cdb31d581e24a53fe703716a6a3c11 100644 (file)
@@ -73,7 +73,7 @@ void __init prom_free_prom_memory(void)
 
 #define PORT(offset)   (u8 *)(KSEG1ADDR(LS1X_UART0_BASE + offset))
 
-void __init prom_putchar(char c)
+void prom_putchar(char c)
 {
        int timeout;
 
index 984e561f0f7ad58aca4a6a58d8644b79f1ad0fbf..b952d5b1af862afed1d9fc8006d3f1e9a7ed59d6 100644 (file)
@@ -31,7 +31,7 @@ static inline struct ioc3_uartregs *console_uart(void)
        return &ioc3->sregs.uarta;
 }
 
-void __init prom_putchar(char c)
+void prom_putchar(char c)
 {
        struct ioc3_uartregs *uart = console_uart();
 
index 560fe89917537972050d9ed8ee09e78a2df736f8..5524f2c7b05c5e08298a7c3f25f7c1abb9e4113c 100644 (file)
@@ -513,19 +513,19 @@ void __init txx9_sio_init(unsigned long baseaddr, int irq,
 }
 
 #ifdef CONFIG_EARLY_PRINTK
-static void __init null_prom_putchar(char c)
+static void null_prom_putchar(char c)
 {
 }
-void (*txx9_prom_putchar)(char c) __initdata = null_prom_putchar;
+void (*txx9_prom_putchar)(char c) = null_prom_putchar;
 
-void __init prom_putchar(char c)
+void prom_putchar(char c)
 {
        txx9_prom_putchar(c);
 }
 
 static void __iomem *early_txx9_sio_port;
 
-static void __init early_txx9_sio_putchar(char c)
+static void early_txx9_sio_putchar(char c)
 {
 #define TXX9_SICISR    0x0c
 #define TXX9_SITFIFO   0x1c