Lines Matching refs:done
58 static void cpu_stop_init_done(struct cpu_stop_done *done, unsigned int nr_todo) in cpu_stop_init_done() argument
60 memset(done, 0, sizeof(*done)); in cpu_stop_init_done()
61 atomic_set(&done->nr_todo, nr_todo); in cpu_stop_init_done()
62 init_completion(&done->completion); in cpu_stop_init_done()
66 static void cpu_stop_signal_done(struct cpu_stop_done *done, bool executed) in cpu_stop_signal_done() argument
68 if (done) { in cpu_stop_signal_done()
70 done->executed = true; in cpu_stop_signal_done()
71 if (atomic_dec_and_test(&done->nr_todo)) in cpu_stop_signal_done()
72 complete(&done->completion); in cpu_stop_signal_done()
93 cpu_stop_signal_done(work->done, false); in cpu_stop_queue_work()
123 struct cpu_stop_done done; in stop_one_cpu() local
124 struct cpu_stop_work work = { .fn = fn, .arg = arg, .done = &done }; in stop_one_cpu()
126 cpu_stop_init_done(&done, 1); in stop_one_cpu()
128 wait_for_completion(&done.completion); in stop_one_cpu()
129 return done.executed ? done.ret : -ENOENT; in stop_one_cpu()
257 struct cpu_stop_done done; in stop_two_cpus() local
272 .done = &done in stop_two_cpus()
275 cpu_stop_init_done(&done, 2); in stop_two_cpus()
287 wait_for_completion(&done.completion); in stop_two_cpus()
289 return done.executed ? done.ret : -ENOENT; in stop_two_cpus()
318 struct cpu_stop_done *done) in queue_stop_cpus_work() argument
333 work->done = done; in queue_stop_cpus_work()
342 struct cpu_stop_done done; in __stop_cpus() local
344 cpu_stop_init_done(&done, cpumask_weight(cpumask)); in __stop_cpus()
345 queue_stop_cpus_work(cpumask, fn, arg, &done); in __stop_cpus()
346 wait_for_completion(&done.completion); in __stop_cpus()
347 return done.executed ? done.ret : -ENOENT; in __stop_cpus()
450 struct cpu_stop_done *done = work->done; in cpu_stopper_thread() local
458 done->ret = ret; in cpu_stopper_thread()
467 cpu_stop_signal_done(done, true); in cpu_stopper_thread()
608 struct cpu_stop_done done; in stop_machine_from_inactive_cpu() local
621 cpu_stop_init_done(&done, num_active_cpus()); in stop_machine_from_inactive_cpu()
623 &done); in stop_machine_from_inactive_cpu()
627 while (!completion_done(&done.completion)) in stop_machine_from_inactive_cpu()
631 return ret ?: done.ret; in stop_machine_from_inactive_cpu()