arm64: add CPU_HOTPLUG infrastructure
[linux-2.6-block.git] / arch / arm64 / include / asm / cpu_ops.h
index 1a98dbfc4a5f36dc5f821993c674b1459c403dd4..c4cdb5e5b73d24027955169fb0e8be03972f7973 100644 (file)
@@ -34,6 +34,11 @@ struct device_node;
  * @cpu_boot:  Boots a cpu into the kernel.
  * @cpu_postboot: Optionally, perform any post-boot cleanup or necesary
  *             synchronisation. Called from the cpu being booted.
+ * @cpu_disable: Prepares a cpu to die. May fail for some mechanism-specific
+ *             reason, which will cause the hot unplug to be aborted. Called
+ *             from the cpu to be killed.
+ * @cpu_die:   Makes a cpu leave the kernel. Must not fail. Called from the
+ *             cpu being killed.
  */
 struct cpu_operations {
        const char      *name;
@@ -41,6 +46,10 @@ struct cpu_operations {
        int             (*cpu_prepare)(unsigned int);
        int             (*cpu_boot)(unsigned int);
        void            (*cpu_postboot)(void);
+#ifdef CONFIG_HOTPLUG_CPU
+       int             (*cpu_disable)(unsigned int cpu);
+       void            (*cpu_die)(unsigned int cpu);
+#endif
 };
 
 extern const struct cpu_operations *cpu_ops[NR_CPUS];