# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1184173067 -3600
# Node ID a9103c71565e69f79458cc19a920cc17fcba9de2
# Parent c3929e540632ec30c19d85a2884f1e49081b8410
Convert __init into __devinit in wakeup path.
Need to ensure all the code slice in the wakeup path still
existing. For this purpose, we have to use __devinit instead
of __init, since the former is null for CONFIG_HOTPLUG while
the latter always causes related code to be free-ed after
first boot.
Later when adding __init to some function, be sure to consider
wakeup case and cpu hotplug!
Signed-off-by <Kevin.Tian@xxxxxxxxx>
---
xen/arch/x86/apic.c | 2 +-
xen/arch/x86/i8259.c | 2 +-
xen/arch/x86/nmi.c | 2 +-
xen/arch/x86/x86_32/traps.c | 2 +-
xen/arch/x86/x86_64/traps.c | 2 +-
xen/drivers/char/ns16550.c | 4 ++--
xen/drivers/char/serial.c | 4 ++--
7 files changed, 9 insertions(+), 9 deletions(-)
diff -r c3929e540632 -r a9103c71565e xen/arch/x86/apic.c
--- a/xen/arch/x86/apic.c Wed Jul 11 17:48:10 2007 +0100
+++ b/xen/arch/x86/apic.c Wed Jul 11 17:57:47 2007 +0100
@@ -957,7 +957,7 @@ void __setup_APIC_LVTT(unsigned int cloc
apic_write_around(APIC_TMICT, clocks/APIC_DIVISOR);
}
-static void __init setup_APIC_timer(unsigned int clocks)
+static void __devinit setup_APIC_timer(unsigned int clocks)
{
unsigned long flags;
local_irq_save(flags);
diff -r c3929e540632 -r a9103c71565e xen/arch/x86/i8259.c
--- a/xen/arch/x86/i8259.c Wed Jul 11 17:48:10 2007 +0100
+++ b/xen/arch/x86/i8259.c Wed Jul 11 17:57:47 2007 +0100
@@ -336,7 +336,7 @@ int i8259A_suspend(void)
return 0;
}
-void __init init_8259A(int auto_eoi)
+void __devinit init_8259A(int auto_eoi)
{
unsigned long flags;
diff -r c3929e540632 -r a9103c71565e xen/arch/x86/nmi.c
--- a/xen/arch/x86/nmi.c Wed Jul 11 17:48:10 2007 +0100
+++ b/xen/arch/x86/nmi.c Wed Jul 11 17:57:47 2007 +0100
@@ -202,7 +202,7 @@ void release_lapic_nmi(void)
enable_lapic_nmi_watchdog();
}
-#define __pminit __init
+#define __pminit __devinit
/*
* Activate the NMI watchdog via the local APIC.
diff -r c3929e540632 -r a9103c71565e xen/arch/x86/x86_32/traps.c
--- a/xen/arch/x86/x86_32/traps.c Wed Jul 11 17:48:10 2007 +0100
+++ b/xen/arch/x86/x86_32/traps.c Wed Jul 11 17:57:47 2007 +0100
@@ -232,7 +232,7 @@ unsigned long do_iret(void)
return 0;
}
-void __init percpu_traps_init(void)
+void __devinit percpu_traps_init(void)
{
struct tss_struct *tss = &doublefault_tss;
asmlinkage int hypercall(void);
diff -r c3929e540632 -r a9103c71565e xen/arch/x86/x86_64/traps.c
--- a/xen/arch/x86/x86_64/traps.c Wed Jul 11 17:48:10 2007 +0100
+++ b/xen/arch/x86/x86_64/traps.c Wed Jul 11 17:57:47 2007 +0100
@@ -285,7 +285,7 @@ static int write_stack_trampoline(
return 34;
}
-void __init percpu_traps_init(void)
+void __devinit percpu_traps_init(void)
{
char *stack_bottom, *stack;
int cpu = smp_processor_id();
diff -r c3929e540632 -r a9103c71565e xen/drivers/char/ns16550.c
--- a/xen/drivers/char/ns16550.c Wed Jul 11 17:48:10 2007 +0100
+++ b/xen/drivers/char/ns16550.c Wed Jul 11 17:57:47 2007 +0100
@@ -170,7 +170,7 @@ static int ns16550_getc(struct serial_po
return 1;
}
-static void __init ns16550_init_preirq(struct serial_port *port)
+static void __devinit ns16550_init_preirq(struct serial_port *port)
{
struct ns16550 *uart = port->uart;
unsigned char lcr;
@@ -214,7 +214,7 @@ static void __init ns16550_init_preirq(s
port->tx_fifo_size = 16;
}
-static void __init ns16550_init_postirq(struct serial_port *port)
+static void __devinit ns16550_init_postirq(struct serial_port *port)
{
struct ns16550 *uart = port->uart;
int rc, bits;
diff -r c3929e540632 -r a9103c71565e xen/drivers/char/serial.c
--- a/xen/drivers/char/serial.c Wed Jul 11 17:48:10 2007 +0100
+++ b/xen/drivers/char/serial.c Wed Jul 11 17:57:47 2007 +0100
@@ -348,7 +348,7 @@ int serial_tx_space(int handle)
return SERIAL_TXBUFSZ - (port->txbufp - port->txbufc);
}
-void __init serial_init_preirq(void)
+void __devinit serial_init_preirq(void)
{
int i;
for ( i = 0; i < ARRAY_SIZE(com); i++ )
@@ -356,7 +356,7 @@ void __init serial_init_preirq(void)
com[i].driver->init_preirq(&com[i]);
}
-void __init serial_init_postirq(void)
+void __devinit serial_init_postirq(void)
{
int i;
for ( i = 0; i < ARRAY_SIZE(com); i++ )
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|