Lines Matching refs:msdata

181 static void set_state(struct multi_stop_data *msdata,  in set_state()  argument
185 atomic_set(&msdata->thread_ack, msdata->num_threads); in set_state()
187 WRITE_ONCE(msdata->state, newstate); in set_state()
191 static void ack_state(struct multi_stop_data *msdata) in ack_state() argument
193 if (atomic_dec_and_test(&msdata->thread_ack)) in ack_state()
194 set_state(msdata, msdata->state + 1); in ack_state()
205 struct multi_stop_data *msdata = data; in multi_cpu_stop() local
218 if (!msdata->active_cpus) { in multi_cpu_stop()
222 cpumask = msdata->active_cpus; in multi_cpu_stop()
230 newstate = READ_ONCE(msdata->state); in multi_cpu_stop()
240 err = msdata->fn(msdata->data); in multi_cpu_stop()
245 ack_state(msdata); in multi_cpu_stop()
339 struct multi_stop_data msdata; in stop_two_cpus() local
341 msdata = (struct multi_stop_data){ in stop_two_cpus()
350 .arg = &msdata, in stop_two_cpus()
356 set_state(&msdata, MULTI_STOP_PREPARE); in stop_two_cpus()
590 struct multi_stop_data msdata = { in stop_machine_cpuslocked() local
608 WARN_ON_ONCE(msdata.num_threads != 1); in stop_machine_cpuslocked()
619 set_state(&msdata, MULTI_STOP_PREPARE); in stop_machine_cpuslocked()
620 return stop_cpus(cpu_online_mask, multi_cpu_stop, &msdata); in stop_machine_cpuslocked()
640 struct multi_stop_data msdata = { in stop_core_cpuslocked() local
650 set_state(&msdata, MULTI_STOP_PREPARE); in stop_core_cpuslocked()
651 return stop_cpus(smt_mask, multi_cpu_stop, &msdata); in stop_core_cpuslocked()
681 struct multi_stop_data msdata = { .fn = fn, .data = data, in stop_machine_from_inactive_cpu() local
688 msdata.num_threads = num_active_cpus() + 1; /* +1 for local */ in stop_machine_from_inactive_cpu()
695 set_state(&msdata, MULTI_STOP_PREPARE); in stop_machine_from_inactive_cpu()
697 queue_stop_cpus_work(cpu_active_mask, multi_cpu_stop, &msdata, in stop_machine_from_inactive_cpu()
699 ret = multi_cpu_stop(&msdata); in stop_machine_from_inactive_cpu()