Lines Matching full:bringup
52 * @bringup: Single callback bringup or teardown selector
71 bool bringup; member
97 static inline void cpuhp_lock_acquire(bool bringup) in cpuhp_lock_acquire() argument
99 lock_map_acquire(bringup ? &cpuhp_state_up_map : &cpuhp_state_down_map); in cpuhp_lock_acquire()
102 static inline void cpuhp_lock_release(bool bringup) in cpuhp_lock_release() argument
104 lock_map_release(bringup ? &cpuhp_state_up_map : &cpuhp_state_down_map); in cpuhp_lock_release()
108 static inline void cpuhp_lock_acquire(bool bringup) { } in cpuhp_lock_acquire() argument
109 static inline void cpuhp_lock_release(bool bringup) { } in cpuhp_lock_release() argument
118 * @cant_stop: Bringup/teardown can't be stopped at this step
148 static bool cpuhp_step_empty(bool bringup, struct cpuhp_step *step) in cpuhp_step_empty() argument
150 return bringup ? !step->startup.single : !step->teardown.single; in cpuhp_step_empty()
157 * @bringup: True if the bringup callback should be invoked
166 bool bringup, struct hlist_node *node, in cpuhp_invoke_callback() argument
180 if (cpuhp_step_empty(bringup, step)) { in cpuhp_invoke_callback()
187 cb = bringup ? step->startup.single : step->teardown.single; in cpuhp_invoke_callback()
194 cbm = bringup ? step->startup.multi : step->teardown.multi; in cpuhp_invoke_callback()
228 cbm = !bringup ? step->startup.multi : step->teardown.multi; in cpuhp_invoke_callback()
257 static inline void wait_for_ap_thread(struct cpuhp_cpu_state *st, bool bringup) in wait_for_ap_thread() argument
259 struct completion *done = bringup ? &st->done_up : &st->done_down; in wait_for_ap_thread()
263 static inline void complete_ap_thread(struct cpuhp_cpu_state *st, bool bringup) in complete_ap_thread() argument
265 struct completion *done = bringup ? &st->done_up : &st->done_down; in complete_ap_thread()
479 bool bringup = st->state < target; in cpuhp_set_state() local
486 st->bringup = bringup; in cpuhp_set_state()
487 if (cpu_dying(st->cpu) != !bringup) in cpuhp_set_state()
488 set_cpu_dying(st->cpu, !bringup); in cpuhp_set_state()
496 bool bringup = !st->bringup; in cpuhp_reset_state() local
501 * Already rolling back. No need invert the bringup value or to change in cpuhp_reset_state()
514 if (st->bringup) in cpuhp_reset_state()
520 st->bringup = bringup; in cpuhp_reset_state()
521 if (cpu_dying(st->cpu) != !bringup) in cpuhp_reset_state()
522 set_cpu_dying(st->cpu, !bringup); in cpuhp_reset_state()
539 wait_for_ap_thread(st, st->bringup); in __cpuhp_kick_ap()
593 * Prevent irq alloc/free across the bringup. in bringup_cpu()
631 static bool cpuhp_next_state(bool bringup, in cpuhp_next_state() argument
637 if (bringup) { in cpuhp_next_state()
649 if (!cpuhp_step_empty(bringup, cpuhp_get_step(*state_to_run))) in cpuhp_next_state()
656 static int cpuhp_invoke_callback_range(bool bringup, in cpuhp_invoke_callback_range() argument
664 while (cpuhp_next_state(bringup, &state, st, target)) { in cpuhp_invoke_callback_range()
665 err = cpuhp_invoke_callback(cpu, state, bringup, NULL, NULL); in cpuhp_invoke_callback_range()
708 * The cpu hotplug threads manage the bringup and teardown of the cpus
743 bool bringup = st->bringup; in cpuhp_thread_fun() local
761 cpuhp_lock_acquire(bringup); in cpuhp_thread_fun()
767 st->should_run = cpuhp_next_state(bringup, &state, st, st->target); in cpuhp_thread_fun()
776 st->result = cpuhp_invoke_callback(cpu, state, bringup, st->node, &st->last); in cpuhp_thread_fun()
784 st->result = cpuhp_invoke_callback(cpu, state, bringup, st->node, &st->last); in cpuhp_thread_fun()
798 cpuhp_lock_release(bringup); in cpuhp_thread_fun()
802 complete_ap_thread(st, bringup); in cpuhp_thread_fun()
807 cpuhp_invoke_ap_callback(int cpu, enum cpuhp_state state, bool bringup, in cpuhp_invoke_ap_callback() argument
827 return cpuhp_invoke_callback(cpu, state, bringup, node, NULL); in cpuhp_invoke_ap_callback()
833 st->bringup = bringup; in cpuhp_invoke_ap_callback()
844 st->bringup = !bringup; in cpuhp_invoke_ap_callback()
1295 * online bringup to the hotplug thread.
1697 .name = "cpu:bringup",
1890 static int cpuhp_issue_call(int cpu, enum cpuhp_state state, bool bringup, in cpuhp_issue_call() argument
1900 if (cpuhp_step_empty(bringup, sp)) in cpuhp_issue_call()
1903 * The non AP bound callbacks can fail on bringup. On teardown in cpuhp_issue_call()
1908 ret = cpuhp_invoke_ap_callback(cpu, state, bringup, node); in cpuhp_issue_call()
1910 ret = cpuhp_invoke_callback(cpu, state, bringup, node, NULL); in cpuhp_issue_call()
1912 ret = cpuhp_invoke_callback(cpu, state, bringup, node, NULL); in cpuhp_issue_call()
1914 BUG_ON(ret && !bringup); in cpuhp_issue_call()