Jan Beulich
2007-Dec-12 08:18 UTC
[Xen-devel] [PATCH, adjusted] linux: secondary CPU handling adjustments
Add proper attributes and remove a few unused items (I forgot that part of the necessary changes lived in a different local patch, which is the reason for the resend). As usual, written and tested on 2.6.24-rc4 and made apply to the 2.6.18 tree without further testing. Signed-off-by: Jan Beulich <jbeulich@novell.com> Index: head-2007-12-11/arch/i386/kernel/time-xen.c ==================================================================--- head-2007-12-11.orig/arch/i386/kernel/time-xen.c 2007-12-11 11:17:36.000000000 +0100 +++ head-2007-12-11/arch/i386/kernel/time-xen.c 2007-12-11 11:45:10.000000000 +0100 @@ -1054,7 +1054,7 @@ void time_resume(void) #ifdef CONFIG_SMP static char timer_name[NR_CPUS][15]; -int local_setup_timer(unsigned int cpu) +int __cpuinit local_setup_timer(unsigned int cpu) { int seq, irq; @@ -1085,7 +1085,7 @@ int local_setup_timer(unsigned int cpu) return 0; } -void local_teardown_timer(unsigned int cpu) +void __cpuexit local_teardown_timer(unsigned int cpu) { BUG_ON(cpu == 0); unbind_from_irqhandler(per_cpu(timer_irq, cpu), NULL); Index: head-2007-12-11/drivers/xen/core/smpboot.c ==================================================================--- head-2007-12-11.orig/drivers/xen/core/smpboot.c 2007-12-11 11:44:59.000000000 +0100 +++ head-2007-12-11/drivers/xen/core/smpboot.c 2007-12-11 11:45:10.000000000 +0100 @@ -59,8 +59,6 @@ static char callfunc_name[NR_CPUS][15]; u8 cpu_2_logical_apicid[NR_CPUS] = { [0 ... NR_CPUS-1] = BAD_APICID }; -void *xquad_portio; - cpumask_t cpu_sibling_map[NR_CPUS] __cacheline_aligned; cpumask_t cpu_core_map[NR_CPUS] __cacheline_aligned; EXPORT_SYMBOL(cpu_core_map); @@ -113,7 +111,7 @@ remove_siblinginfo(int cpu) cpu_data[cpu].booted_cores = 0; } -static int xen_smp_intr_init(unsigned int cpu) +static int __cpuinit xen_smp_intr_init(unsigned int cpu) { int rc; @@ -165,7 +165,7 @@ static void xen_smp_intr_exit(unsigned i } #endif -void cpu_bringup(void) +void __cpuinit cpu_bringup(void) { cpu_init(); identify_cpu(cpu_data + smp_processor_id()); @@ -178,13 +178,13 @@ void cpu_bringup(void) local_irq_enable(); } -static void cpu_bringup_and_idle(void) +static void __cpuinit cpu_bringup_and_idle(void) { cpu_bringup(); cpu_idle(); } -static void cpu_initialize_context(unsigned int cpu) +static void __cpuinit cpu_initialize_context(unsigned int cpu) { vcpu_guest_context_t ctxt; struct task_struct *idle = idle_task(cpu); @@ -403,21 +401,9 @@ void __cpu_die(unsigned int cpu) alternatives_smp_switch(0); } -#else /* !CONFIG_HOTPLUG_CPU */ - -int __cpu_disable(void) -{ - return -ENOSYS; -} - -void __cpu_die(unsigned int cpu) -{ - BUG(); -} - #endif /* CONFIG_HOTPLUG_CPU */ -int __devinit __cpu_up(unsigned int cpu) +int __cpuinit __cpu_up(unsigned int cpu) { int rc; _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel