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