Merge tag 'smp-core-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull SMP updates from Ingo Molnar:
 "Misc cleanups in the SMP hotplug and cross-call code"

* tag 'smp-core-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  cpu/hotplug: Remove __freeze_secondary_cpus()
  cpu/hotplug: Remove disable_nonboot_cpus()
  cpu/hotplug: Fix a typo in comment "broadacasted"->"broadcasted"
  smp: Use smp_call_func_t in on_each_cpu()
This commit is contained in:
Linus Torvalds
2020-06-01 13:38:55 -07:00
9 changed files with 25 additions and 36 deletions

View File

@@ -432,7 +432,7 @@ static inline bool cpu_smt_allowed(unsigned int cpu)
/*
* On x86 it's required to boot all logical CPUs at least once so
* that the init code can get a chance to set CR4.MCE on each
* CPU. Otherwise, a broadacasted MCE observing CR4.MCE=0b on any
* CPU. Otherwise, a broadcasted MCE observing CR4.MCE=0b on any
* core will shutdown the machine.
*/
return !cpumask_test_cpu(cpu, &cpus_booted_once_mask);
@@ -1327,7 +1327,7 @@ void bringup_nonboot_cpus(unsigned int setup_max_cpus)
#ifdef CONFIG_PM_SLEEP_SMP
static cpumask_var_t frozen_cpus;
int __freeze_secondary_cpus(int primary, bool suspend)
int freeze_secondary_cpus(int primary)
{
int cpu, error = 0;
@@ -1352,7 +1352,7 @@ int __freeze_secondary_cpus(int primary, bool suspend)
if (cpu == primary)
continue;
if (suspend && pm_wakeup_pending()) {
if (pm_wakeup_pending()) {
pr_info("Wakeup pending. Abort CPU freeze\n");
error = -EBUSY;
break;
@@ -1376,8 +1376,8 @@ int __freeze_secondary_cpus(int primary, bool suspend)
/*
* Make sure the CPUs won't be enabled by someone else. We need to do
* this even in case of failure as all disable_nonboot_cpus() users are
* supposed to do enable_nonboot_cpus() on the failure path.
* this even in case of failure as all freeze_secondary_cpus() users are
* supposed to do thaw_secondary_cpus() on the failure path.
*/
cpu_hotplug_disabled++;
@@ -1385,15 +1385,15 @@ int __freeze_secondary_cpus(int primary, bool suspend)
return error;
}
void __weak arch_enable_nonboot_cpus_begin(void)
void __weak arch_thaw_secondary_cpus_begin(void)
{
}
void __weak arch_enable_nonboot_cpus_end(void)
void __weak arch_thaw_secondary_cpus_end(void)
{
}
void enable_nonboot_cpus(void)
void thaw_secondary_cpus(void)
{
int cpu, error;
@@ -1405,7 +1405,7 @@ void enable_nonboot_cpus(void)
pr_info("Enabling non-boot CPUs ...\n");
arch_enable_nonboot_cpus_begin();
arch_thaw_secondary_cpus_begin();
for_each_cpu(cpu, frozen_cpus) {
trace_suspend_resume(TPS("CPU_ON"), cpu, true);
@@ -1418,7 +1418,7 @@ void enable_nonboot_cpus(void)
pr_warn("Error taking CPU%d up: %d\n", cpu, error);
}
arch_enable_nonboot_cpus_end();
arch_thaw_secondary_cpus_end();
cpumask_clear(frozen_cpus);
out:

View File

@@ -620,7 +620,7 @@ void __init smp_init(void)
* early_boot_irqs_disabled is set. Use local_irq_save/restore() instead
* of local_irq_disable/enable().
*/
void on_each_cpu(void (*func) (void *info), void *info, int wait)
void on_each_cpu(smp_call_func_t func, void *info, int wait)
{
unsigned long flags;