hulk inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I8OSNK CVE: NA
--------------------------------
This reverts commit 48725c8f5d6e2457ef00f3bc46b5fb38c9389d50.
Signed-off-by: Yu Liao liaoyu15@huawei.com --- include/linux/cpuhotplug.h | 1 + include/linux/hrtimer.h | 2 +- include/linux/smp.h | 1 - kernel/cpu.c | 19 ++++++------------- kernel/smp.c | 8 -------- 5 files changed, 8 insertions(+), 23 deletions(-)
diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h index d67c0035165c..a17bb2c393d4 100644 --- a/include/linux/cpuhotplug.h +++ b/include/linux/cpuhotplug.h @@ -137,6 +137,7 @@ enum cpuhp_state { CPUHP_AP_ARM_CORESIGHT_STARTING, CPUHP_AP_ARM64_ISNDEP_STARTING, CPUHP_AP_SMPCFD_DYING, + CPUHP_AP_HRTIMERS_DYING, CPUHP_AP_X86_TBOOT_DYING, CPUHP_AP_ARM_CACHE_B15_RAC_DYING, CPUHP_AP_ONLINE, diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index 290345a0b605..3bdaa92a2cab 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h @@ -510,7 +510,7 @@ int hrtimers_prepare_cpu(unsigned int cpu); #ifdef CONFIG_HOTPLUG_CPU int hrtimers_cpu_dying(unsigned int cpu); #else -static inline int hrtimers_cpu_dying(unsigned int cpu) { return 0; } +#define hrtimers_cpu_dying NULL #endif
#endif diff --git a/include/linux/smp.h b/include/linux/smp.h index 634659d48a5f..9fb239e12b82 100644 --- a/include/linux/smp.h +++ b/include/linux/smp.h @@ -220,6 +220,5 @@ int smp_call_on_cpu(unsigned int cpu, int (*func)(void *), void *par, int smpcfd_prepare_cpu(unsigned int cpu); int smpcfd_dead_cpu(unsigned int cpu); int smpcfd_dying_cpu(unsigned int cpu); -int smpcfd_and_hrtimer_dying_cpu(unsigned int cpu);
#endif /* __LINUX_SMP_H */ diff --git a/kernel/cpu.c b/kernel/cpu.c index cfed9b994e62..83f6cc6f6c61 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -1452,23 +1452,16 @@ static struct cpuhp_step cpuhp_hp_states[] = { .startup.single = NULL, .teardown.single = rcutree_dying_cpu, }, - /* - * In order to fix the kabi breakage, we had to move the hrtimers:dying - * step into smpcfd:dying and create a new function smpcfd_and_hrtimer_dying_cpu(). - * Please ensure that there are no other steps with teardown handler - * between smpcfd:dying and cpu:teardown. - */ [CPUHP_AP_SMPCFD_DYING] = { .name = "smpcfd:dying", .startup.single = NULL, - .teardown.single = smpcfd_and_hrtimer_dying_cpu, + .teardown.single = smpcfd_dying_cpu, + }, + [CPUHP_AP_HRTIMERS_DYING] = { + .name = "hrtimers:dying", + .startup.single = NULL, + .teardown.single = hrtimers_cpu_dying, }, - - /* - * Attention: Please do not add steps between smpcfd:dying - * and ap:online. Please refer to the above for specific - * reasons. - */
/* Entry state on starting. Interrupts enabled from here on. Transient * state for synchronsization */ diff --git a/kernel/smp.c b/kernel/smp.c index 979b3b13e741..be15d3a57954 100644 --- a/kernel/smp.c +++ b/kernel/smp.c @@ -71,14 +71,6 @@ int smpcfd_dead_cpu(unsigned int cpu) return 0; }
-int smpcfd_and_hrtimer_dying_cpu(unsigned int cpu) -{ - hrtimers_cpu_dying(cpu); - smpcfd_dying_cpu(cpu); - - return 0; -} - int smpcfd_dying_cpu(unsigned int cpu) { /*