summaryrefslogtreecommitdiffstats
path: root/include/linux/stop_machine.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-01-06 09:04:32 +0100
committerIngo Molnar <mingo@elte.hu>2009-01-06 09:04:32 +0100
commitd12418fdeafdc08dd5bbec89d3e07e47ee75da55 (patch)
treeac94d5bf58360b89fc7439fb52182c17d0674b0a /include/linux/stop_machine.h
parentc2d1cec1c77f7714672c1efeae075424c929e0d5 (diff)
parent238c6d54830c624f34ac9cf123ac04aebfca5013 (diff)
downloadkernel-crypto-d12418fdeafdc08dd5bbec89d3e07e47ee75da55.tar.gz
kernel-crypto-d12418fdeafdc08dd5bbec89d3e07e47ee75da55.tar.xz
kernel-crypto-d12418fdeafdc08dd5bbec89d3e07e47ee75da55.zip
Merge branch 'linus' into cpus4096
Diffstat (limited to 'include/linux/stop_machine.h')
-rw-r--r--include/linux/stop_machine.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/include/linux/stop_machine.h b/include/linux/stop_machine.h
index 74d59a64136..baba3a23a81 100644
--- a/include/linux/stop_machine.h
+++ b/include/linux/stop_machine.h
@@ -35,6 +35,24 @@ int stop_machine(int (*fn)(void *), void *data, const struct cpumask *cpus);
* won't come or go while it's being called. Used by hotplug cpu.
*/
int __stop_machine(int (*fn)(void *), void *data, const struct cpumask *cpus);
+
+/**
+ * stop_machine_create: create all stop_machine threads
+ *
+ * Description: This causes all stop_machine threads to be created before
+ * stop_machine actually gets called. This can be used by subsystems that
+ * need a non failing stop_machine infrastructure.
+ */
+int stop_machine_create(void);
+
+/**
+ * stop_machine_destroy: destroy all stop_machine threads
+ *
+ * Description: This causes all stop_machine threads which were created with
+ * stop_machine_create to be destroyed again.
+ */
+void stop_machine_destroy(void);
+
#else
static inline int stop_machine(int (*fn)(void *), void *data,
@@ -46,5 +64,9 @@ static inline int stop_machine(int (*fn)(void *), void *data,
local_irq_enable();
return ret;
}
+
+static inline int stop_machine_create(void) { return 0; }
+static inline void stop_machine_destroy(void) { }
+
#endif /* CONFIG_SMP */
#endif /* _LINUX_STOP_MACHINE */