Tian, Kevin
2007-Jun-27 13:37 UTC
[Xen-devel] [PATCH 8/10] 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@intel.com> diff -r 8140b647f56c xen/arch/x86/apic.c --- a/xen/arch/x86/apic.c Tue Jun 26 18:05:22 2007 -0400 +++ b/xen/arch/x86/apic.c Tue Jun 26 18:05:22 2007 -0400 @@ -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 8140b647f56c xen/arch/x86/i8259.c --- a/xen/arch/x86/i8259.c Tue Jun 26 18:05:22 2007 -0400 +++ b/xen/arch/x86/i8259.c Tue Jun 26 18:17:33 2007 -0400 @@ -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 8140b647f56c xen/arch/x86/nmi.c --- a/xen/arch/x86/nmi.c Tue Jun 26 18:05:22 2007 -0400 +++ b/xen/arch/x86/nmi.c Tue Jun 26 18:05:22 2007 -0400 @@ -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 8140b647f56c xen/arch/x86/x86_32/traps.c --- a/xen/arch/x86/x86_32/traps.c Tue Jun 26 18:05:22 2007 -0400 +++ b/xen/arch/x86/x86_32/traps.c Tue Jun 26 18:05:22 2007 -0400 @@ -241,7 +241,7 @@ fastcall void smp_deferred_nmi(struct cp do_nmi(regs); } -void __init percpu_traps_init(void) +void __devinit percpu_traps_init(void) { struct tss_struct *tss = &doublefault_tss; asmlinkage int hypercall(void); diff -r 8140b647f56c xen/arch/x86/x86_64/traps.c --- a/xen/arch/x86/x86_64/traps.c Tue Jun 26 18:05:22 2007 -0400 +++ b/xen/arch/x86/x86_64/traps.c Tue Jun 26 18:05:22 2007 -0400 @@ -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 8140b647f56c xen/drivers/char/ns16550.c --- a/xen/drivers/char/ns16550.c Tue Jun 26 18:05:22 2007 -0400 +++ b/xen/drivers/char/ns16550.c Tue Jun 26 18:16:02 2007 -0400 @@ -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 8140b647f56c xen/drivers/char/serial.c --- a/xen/drivers/char/serial.c Tue Jun 26 18:05:22 2007 -0400 +++ b/xen/drivers/char/serial.c Tue Jun 26 18:09:56 2007 -0400 @@ -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-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel