/******************************* init / exit *********************************/
 
-static void
-appldata_online_cpu(int cpu)
+static void __cpuinit appldata_online_cpu(int cpu)
 {
        init_virt_timer(&per_cpu(appldata_timer, cpu));
        per_cpu(appldata_timer, cpu).function = appldata_timer_function;
        return NOTIFY_OK;
 }
 
-static struct notifier_block appldata_nb = {
+static struct notifier_block __cpuinitdata appldata_nb = {
        .notifier_call = appldata_cpu_notify,
 };
 
 
 
        RESTORE_ALL __LC_RETURN_MCCK_PSW,0
 
-#ifdef CONFIG_SMP
 /*
  * Restart interruption handler, kick starter for additional CPUs
  */
+#ifdef CONFIG_SMP
+#ifndef CONFIG_HOTPLUG_CPU
+       .section .init.text,"ax"
+#endif
        .globl restart_int_handler
 restart_int_handler:
        l       %r15,__LC_SAVE_AREA+60  # load ksp
        br      %r14                    # branch to start_secondary
 restart_addr:
        .long   start_secondary
+#ifndef CONFIG_HOTPLUG_CPU
+       .previous
+#endif
 #else
 /*
  * If we do not run with SMP enabled, let the new CPU crash ...
 
 #endif
        lpswe   __LC_RETURN_MCCK_PSW    # back to caller
 
-#ifdef CONFIG_SMP
 /*
  * Restart interruption handler, kick starter for additional CPUs
  */
+#ifdef CONFIG_SMP
+#ifndef CONFIG_HOTPLUG_CPU
+       .section .init.text,"ax"
+#endif
        .globl restart_int_handler
 restart_int_handler:
        lg      %r15,__LC_SAVE_AREA+120 # load ksp
        lmg     %r6,%r15,__SF_GPRS(%r15) # load registers from clone
        stosm   __SF_EMPTY(%r15),0x04   # now we can turn dat on
        jg      start_secondary
+#ifndef CONFIG_HOTPLUG_CPU
+       .previous
+#endif
 #else
 /*
  * If we do not run with SMP enabled, let the new CPU crash ...