Pull CPU hotplug fix from Thomas Gleixner: "Remove the stale skip_onerr member from the hotplug states" * 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: cpu/hotplug: Remove skip_onerr field from cpuhp_step structure
Unified · Split
| @@ -102,8 +102,6 @@ static inline void cpuhp_lock_release(bool bringup) { } · 101 unmodified lines | ||
| 102 | 102 | * @name: Name of the step |
| 103 | 103 | * @startup: Startup function of the step |
| 104 | 104 | * @teardown: Teardown function of the step |
| 105 | − * @skip_onerr: Do not invoke the functions on error rollback | |
| 106 | − * Will go away once the notifiers are gone | |
| 107 | 105 | * @cant_stop: Bringup/teardown can't be stopped at this step |
| 108 | 106 | */ |
| 109 | 107 | struct cpuhp_step { |
| @@ -119,7 +117,6 @@ struct cpuhp_step { · 9 unmodified lines | ||
| 119 | 117 | struct hlist_node *node); |
| 120 | 118 | } teardown; |
| 121 | 119 | struct hlist_head list; |
| 122 | − bool skip_onerr; | |
| 123 | 120 | bool cant_stop; |
| 124 | 121 | bool multi_instance; |
| 125 | 122 | }; |
| @@ -550,12 +547,8 @@ static int bringup_cpu(unsigned int cpu) · 424 unmodified lines | ||
| 550 | 547 | |
| 551 | 548 | static void undo_cpu_up(unsigned int cpu, struct cpuhp_cpu_state *st) |
| 552 | 549 | { |
| 553 | − for (st->state--; st->state > st->target; st->state--) { | |
| 554 | − struct cpuhp_step *step = cpuhp_get_step(st->state); | |
| 555 | − | |
| 556 | − if (!step->skip_onerr) | |
| 557 | − cpuhp_invoke_callback(cpu, st->state, false, NULL, NULL); | |
| 558 | − } | |
| 550 | + for (st->state--; st->state > st->target; st->state--) | |
| 551 | + cpuhp_invoke_callback(cpu, st->state, false, NULL, NULL); | |
| 559 | 552 | } |
| 560 | 553 | |
| 561 | 554 | static int cpuhp_up_callbacks(unsigned int cpu, struct cpuhp_cpu_state *st, |
| @@ -644,12 +637,6 @@ static void cpuhp_thread_fun(unsigned int cpu) · 82 unmodified lines | ||
| 644 | 637 | |
| 645 | 638 | WARN_ON_ONCE(!cpuhp_is_ap_state(state)); |
| 646 | 639 | |
| 647 | − if (st->rollback) { | |
| 648 | − struct cpuhp_step *step = cpuhp_get_step(state); | |
| 649 | − if (step->skip_onerr) | |
| 650 | − goto next; | |
| 651 | − } | |
| 652 | − | |
| 653 | 640 | if (cpuhp_is_atomic_state(state)) { |
| 654 | 641 | local_irq_disable(); |
| 655 | 642 | st->result = cpuhp_invoke_callback(cpu, state, bringup, st->node, &st->last); |
| @@ -673,7 +660,6 @@ static void cpuhp_thread_fun(unsigned int cpu) · 17 unmodified lines | ||
| 673 | 660 | st->should_run = false; |
| 674 | 661 | } |
| 675 | 662 | |
| 676 | −next: | |
| 677 | 663 | cpuhp_lock_release(bringup); |
| 678 | 664 | |
| 679 | 665 | if (!st->should_run) |
| @@ -916,12 +902,8 @@ void cpuhp_report_idle_dead(void) · 236 unmodified lines | ||
| 916 | 902 | |
| 917 | 903 | static void undo_cpu_down(unsigned int cpu, struct cpuhp_cpu_state *st) |
| 918 | 904 | { |
| 919 | − for (st->state++; st->state < st->target; st->state++) { | |
| 920 | − struct cpuhp_step *step = cpuhp_get_step(st->state); | |
| 921 | − | |
| 922 | − if (!step->skip_onerr) | |
| 923 | − cpuhp_invoke_callback(cpu, st->state, true, NULL, NULL); | |
| 924 | − } | |
| 905 | + for (st->state++; st->state < st->target; st->state++) | |
| 906 | + cpuhp_invoke_callback(cpu, st->state, true, NULL, NULL); | |
| 925 | 907 | } |
| 926 | 908 | |
| 927 | 909 | static int cpuhp_down_callbacks(unsigned int cpu, struct cpuhp_cpu_state *st, |