From: Ashok Raj <ashok.raj@intel.com>

Contains changes from __init to __devinit to support cpu hotplug Changes only
arch/ia64 portions of the kernel tree.


---

 25-akpm/arch/ia64/kernel/setup.c   |    2 +-
 25-akpm/arch/ia64/kernel/smpboot.c |   12 ++++++------
 25-akpm/arch/ia64/kernel/time.c    |    2 +-
 25-akpm/arch/ia64/mm/init.c        |    4 ++--
 25-akpm/arch/ia64/mm/tlb.c         |    2 +-
 25-akpm/include/asm-ia64/smp.h     |    3 ++-
 6 files changed, 13 insertions(+), 12 deletions(-)

diff -puN arch/ia64/kernel/setup.c~ia64-cpuhotplug-init_removal arch/ia64/kernel/setup.c
--- 25/arch/ia64/kernel/setup.c~ia64-cpuhotplug-init_removal	Wed Apr 28 14:49:57 2004
+++ 25-akpm/arch/ia64/kernel/setup.c	Wed Apr 28 14:49:57 2004
@@ -571,7 +571,7 @@ get_max_cacheline_size (void)
 void
 cpu_init (void)
 {
-	extern void __init ia64_mmu_init (void *);
+	extern void __devinit ia64_mmu_init (void *);
 	unsigned long num_phys_stacked;
 	pal_vm_info_2_u_t vmi;
 	unsigned int max_ctx;
diff -puN arch/ia64/kernel/smpboot.c~ia64-cpuhotplug-init_removal arch/ia64/kernel/smpboot.c
--- 25/arch/ia64/kernel/smpboot.c~ia64-cpuhotplug-init_removal	Wed Apr 28 14:49:57 2004
+++ 25-akpm/arch/ia64/kernel/smpboot.c	Wed Apr 28 14:49:57 2004
@@ -69,7 +69,7 @@ static volatile unsigned long go[SLAVE +
 
 #define DEBUG_ITC_SYNC	0
 
-extern void __init calibrate_delay (void);
+extern void __devinit calibrate_delay (void);
 extern void start_ap (void);
 extern unsigned long ia64_iobase;
 
@@ -262,12 +262,12 @@ ia64_sync_itc (unsigned int master)
 /*
  * Ideally sets up per-cpu profiling hooks.  Doesn't do much now...
  */
-static inline void __init
+static inline void __devinit
 smp_setup_percpu_timer (void)
 {
 }
 
-static void __init
+static void __devinit
 smp_callin (void)
 {
 	int cpuid, phys_id;
@@ -333,7 +333,7 @@ smp_callin (void)
 /*
  * Activate a secondary processor.  head.S calls this.
  */
-int __init
+int __devinit
 start_secondary (void *unused)
 {
 	extern int cpu_idle (void);
@@ -346,7 +346,7 @@ start_secondary (void *unused)
 	return cpu_idle();
 }
 
-static struct task_struct * __init
+static struct task_struct * __devinit
 fork_by_hand (void)
 {
 	/*
@@ -356,7 +356,7 @@ fork_by_hand (void)
 	return copy_process(CLONE_VM|CLONE_IDLETASK, 0, 0, 0, NULL, NULL);
 }
 
-static int __init
+static int __devinit
 do_boot_cpu (int sapicid, int cpu)
 {
 	struct task_struct *idle;
diff -puN arch/ia64/kernel/time.c~ia64-cpuhotplug-init_removal arch/ia64/kernel/time.c
--- 25/arch/ia64/kernel/time.c~ia64-cpuhotplug-init_removal	Wed Apr 28 14:49:57 2004
+++ 25-akpm/arch/ia64/kernel/time.c	Wed Apr 28 14:49:57 2004
@@ -326,7 +326,7 @@ ia64_cpu_local_tick (void)
 	ia64_set_itm(local_cpu_data->itm_next);
 }
 
-void __init
+void __devinit
 ia64_init_itm (void)
 {
 	unsigned long platform_base_freq, itc_freq;
diff -puN arch/ia64/mm/init.c~ia64-cpuhotplug-init_removal arch/ia64/mm/init.c
--- 25/arch/ia64/mm/init.c~ia64-cpuhotplug-init_removal	Wed Apr 28 14:49:57 2004
+++ 25-akpm/arch/ia64/mm/init.c	Wed Apr 28 14:49:57 2004
@@ -277,11 +277,11 @@ setup_gate (void)
 	ia64_patch_gate();
 }
 
-void __init
+void __devinit
 ia64_mmu_init (void *my_cpu_data)
 {
 	unsigned long psr, pta, impl_va_bits;
-	extern void __init tlb_init (void);
+	extern void __devinit tlb_init (void);
 	int cpu;
 
 #ifdef CONFIG_DISABLE_VHPT
diff -puN arch/ia64/mm/tlb.c~ia64-cpuhotplug-init_removal arch/ia64/mm/tlb.c
--- 25/arch/ia64/mm/tlb.c~ia64-cpuhotplug-init_removal	Wed Apr 28 14:49:57 2004
+++ 25-akpm/arch/ia64/mm/tlb.c	Wed Apr 28 14:49:57 2004
@@ -166,7 +166,7 @@ flush_tlb_range (struct vm_area_struct *
 }
 EXPORT_SYMBOL(flush_tlb_range);
 
-void __init
+void __devinit
 ia64_tlb_init (void)
 {
 	ia64_ptce_info_t ptce_info;
diff -puN include/asm-ia64/smp.h~ia64-cpuhotplug-init_removal include/asm-ia64/smp.h
--- 25/include/asm-ia64/smp.h~ia64-cpuhotplug-init_removal	Wed Apr 28 14:49:57 2004
+++ 25-akpm/include/asm-ia64/smp.h	Wed Apr 28 14:49:57 2004
@@ -36,7 +36,7 @@ extern struct smp_boot_data {
 	int cpu_phys_id[NR_CPUS];
 } smp_boot_data __initdata;
 
-extern char no_int_routing __initdata;
+extern char no_int_routing __devinitdata;
 
 extern cpumask_t phys_cpu_present_map;
 extern cpumask_t cpu_online_map;
@@ -113,6 +113,7 @@ hard_smp_processor_id (void)
 /* Upping and downing of CPUs */
 extern int __cpu_disable (void);
 extern void __cpu_die (unsigned int cpu);
+extern void cpu_die (void) __attribute__ ((noreturn));
 extern int __cpu_up (unsigned int cpu);
 extern void __init smp_build_cpu_map(void);
 

_