mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
powerpc/pseries: Skip vpa_init() for boot cpu in smp_setup_cpu()
During pSeries_setup_arch(), VPA for boot-cpu is first to be initialized. However later in the boot, smp_setup_cpu() is called for setting up VPA on boot and secondary cpus that were brought online. This results in vpa_init() being called twice for boot-cpu and three redundant H_REGISTER_VPA hcalls being made to the hypervisor. Fix this by adding an extra condition in smp_set_cpu() to call vpa_init() only on non boot-cpus. Signed-off-by: Vaibhav Jain <vaibhav@linux.ibm.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20260708015842.274690-1-vaibhav@linux.ibm.com
This commit is contained in:
parent
810d07fb4c
commit
8f45abd50a
|
|
@ -128,7 +128,12 @@ static void smp_setup_cpu(int cpu)
|
|||
else if (cpu != boot_cpuid)
|
||||
xics_setup_cpu();
|
||||
|
||||
if (firmware_has_feature(FW_FEATURE_SPLPAR))
|
||||
/*
|
||||
* Initialize VPA on non-boot cpus since boot-cpu vpa was
|
||||
* already initialized in pSeries_setup_arch()
|
||||
*/
|
||||
if (firmware_has_feature(FW_FEATURE_SPLPAR) &&
|
||||
cpu != boot_cpuid)
|
||||
vpa_init(cpu);
|
||||
|
||||
cpumask_clear_cpu(cpu, of_spin_mask);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user