aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/smpboot.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/smpboot.h')
-rw-r--r--include/linux/smpboot.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/smpboot.h b/include/linux/smpboot.h
index e0106d8581d3..13e929679550 100644
--- a/include/linux/smpboot.h
+++ b/include/linux/smpboot.h
@@ -14,6 +14,8 @@ struct smpboot_thread_data;
14 * @thread_should_run: Check whether the thread should run or not. Called with 14 * @thread_should_run: Check whether the thread should run or not. Called with
15 * preemption disabled. 15 * preemption disabled.
16 * @thread_fn: The associated thread function 16 * @thread_fn: The associated thread function
17 * @create: Optional setup function, called when the thread gets
18 * created (Not called from the thread context)
17 * @setup: Optional setup function, called when the thread gets 19 * @setup: Optional setup function, called when the thread gets
18 * operational the first time 20 * operational the first time
19 * @cleanup: Optional cleanup function, called when the thread 21 * @cleanup: Optional cleanup function, called when the thread
@@ -22,6 +24,10 @@ struct smpboot_thread_data;
22 * parked (cpu offline) 24 * parked (cpu offline)
23 * @unpark: Optional unpark function, called when the thread is 25 * @unpark: Optional unpark function, called when the thread is
24 * unparked (cpu online) 26 * unparked (cpu online)
27 * @pre_unpark: Optional unpark function, called before the thread is
28 * unparked (cpu online). This is not guaranteed to be
29 * called on the target cpu of the thread. Careful!
30 * @selfparking: Thread is not parked by the park function.
25 * @thread_comm: The base name of the thread 31 * @thread_comm: The base name of the thread
26 */ 32 */
27struct smp_hotplug_thread { 33struct smp_hotplug_thread {
@@ -29,10 +35,13 @@ struct smp_hotplug_thread {
29 struct list_head list; 35 struct list_head list;
30 int (*thread_should_run)(unsigned int cpu); 36 int (*thread_should_run)(unsigned int cpu);
31 void (*thread_fn)(unsigned int cpu); 37 void (*thread_fn)(unsigned int cpu);
38 void (*create)(unsigned int cpu);
32 void (*setup)(unsigned int cpu); 39 void (*setup)(unsigned int cpu);
33 void (*cleanup)(unsigned int cpu, bool online); 40 void (*cleanup)(unsigned int cpu, bool online);
34 void (*park)(unsigned int cpu); 41 void (*park)(unsigned int cpu);
35 void (*unpark)(unsigned int cpu); 42 void (*unpark)(unsigned int cpu);
43 void (*pre_unpark)(unsigned int cpu);
44 bool selfparking;
36 const char *thread_comm; 45 const char *thread_comm;
37}; 46};
38 47