Skip to contentSkip to conversation

linux: secondary CPU handling adjustments

PATCH New Jan Beulich 1 participant 1 message Dec 12, 2007 Xen hypervisor interface

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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.

arch/i386/kernel/time-xen.c +2 -2
Index: head-2007-12-11/arch/i386/kernel/time-xen.c
===================================================================
@@ -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);
drivers/xen/core/smpboot.c +5 -19
Index: head-2007-12-11/drivers/xen/core/smpboot.c
===================================================================
@@ -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;