Lines Matching refs:td
108 struct smpboot_thread_data *td = data; in smpboot_thread_fn() local
109 struct smp_hotplug_thread *ht = td->ht; in smpboot_thread_fn()
118 if (ht->cleanup && td->status != HP_THREAD_NONE) in smpboot_thread_fn()
119 ht->cleanup(td->cpu, cpu_online(td->cpu)); in smpboot_thread_fn()
120 kfree(td); in smpboot_thread_fn()
127 if (ht->park && td->status == HP_THREAD_ACTIVE) { in smpboot_thread_fn()
128 BUG_ON(td->cpu != smp_processor_id()); in smpboot_thread_fn()
129 ht->park(td->cpu); in smpboot_thread_fn()
130 td->status = HP_THREAD_PARKED; in smpboot_thread_fn()
137 BUG_ON(td->cpu != smp_processor_id()); in smpboot_thread_fn()
140 switch (td->status) { in smpboot_thread_fn()
145 ht->setup(td->cpu); in smpboot_thread_fn()
146 td->status = HP_THREAD_ACTIVE; in smpboot_thread_fn()
153 ht->unpark(td->cpu); in smpboot_thread_fn()
154 td->status = HP_THREAD_ACTIVE; in smpboot_thread_fn()
158 if (!ht->thread_should_run(td->cpu)) { in smpboot_thread_fn()
164 ht->thread_fn(td->cpu); in smpboot_thread_fn()
173 struct smpboot_thread_data *td; in __smpboot_create_thread() local
178 td = kzalloc_node(sizeof(*td), GFP_KERNEL, cpu_to_node(cpu)); in __smpboot_create_thread()
179 if (!td) in __smpboot_create_thread()
181 td->cpu = cpu; in __smpboot_create_thread()
182 td->ht = ht; in __smpboot_create_thread()
184 tsk = kthread_create_on_cpu(smpboot_thread_fn, td, cpu, in __smpboot_create_thread()
187 kfree(td); in __smpboot_create_thread()