On Thu, Nov 12, 2020 at 05:44:48PM +0100, Vitaly Kuznetsov wrote: > Wei Liu <wei.liu@xxxxxxxxxx> writes: > > > Microsoft Hypervisor requires the root partition to make a few > > hypercalls to setup application processors before they can be used. > > > > Signed-off-by: Lillian Grassin-Drake <ligrassi@xxxxxxxxxxxxx> > > Signed-off-by: Sunil Muthuswamy <sunilmut@xxxxxxxxxxxxx> > > Co-Developed-by: Lillian Grassin-Drake <ligrassi@xxxxxxxxxxxxx> > > Co-Developed-by: Sunil Muthuswamy <sunilmut@xxxxxxxxxxxxx> > > Signed-off-by: Wei Liu <wei.liu@xxxxxxxxxx> > > --- > > CPU hotplug and unplug is not yet supported in this setup, so those > > paths remain untouched. > > --- > > arch/x86/kernel/cpu/mshyperv.c | 27 +++++++++++++++++++++++++++ > > 1 file changed, 27 insertions(+) > > > > diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c > > index f7633e1e4c82..4795e54550e6 100644 > > --- a/arch/x86/kernel/cpu/mshyperv.c > > +++ b/arch/x86/kernel/cpu/mshyperv.c > > @@ -31,6 +31,7 @@ > > #include <asm/reboot.h> > > #include <asm/nmi.h> > > #include <clocksource/hyperv_timer.h> > > +#include <asm/numa.h> > > > > struct ms_hyperv_info ms_hyperv; > > EXPORT_SYMBOL_GPL(ms_hyperv); > > @@ -208,6 +209,30 @@ static void __init hv_smp_prepare_boot_cpu(void) > > hv_init_spinlocks(); > > #endif > > } > > + > > +static void __init hv_smp_prepare_cpus(unsigned int max_cpus) > > +{ > > +#if defined(CONFIG_X86_64) > > '#ifdef CONFIG_X86_64' is equally good as you can't compile x86_64 > support as a module :-) > > > + int i; > > + int ret; > > + > > + native_smp_prepare_cpus(max_cpus); > > + > > So hypotetically, if hv_root_partition is true but 'ifdef CONFIG_X86_64' > is false, we won't even be doing native_smp_prepare_cpus()? This doesn't > sound right. Either move it outside of #ifdef or put the #ifdef around > 'smp_ops.smp_prepare_cpus' assignment too. > Fixed. Thanks. Wei.