x86/smp: Factor out parts of native_smp_prepare_cpus()
authorBoris Ostrovsky <boris.ostrovsky@oracle.com>
Tue, 2 Nov 2021 23:36:36 +0000 (19:36 -0400)
committerPeter Zijlstra <peterz@infradead.org>
Thu, 11 Nov 2021 12:09:32 +0000 (13:09 +0100)
commitce2612b6706b4d0a70732795253722e3bd4ed953
treee8835b0b9202ee24f298777e9d9cda95d493c36b
parentdebe436e77c72fcee804fb867f275e6d31aa999c
x86/smp: Factor out parts of native_smp_prepare_cpus()

Commit 66558b730f25 ("sched: Add cluster scheduler level for x86")
introduced cpu_l2c_shared_map mask which is expected to be initialized
by smp_op.smp_prepare_cpus(). That commit only updated
native_smp_prepare_cpus() version but not xen_pv_smp_prepare_cpus().
As result Xen PV guests crash in set_cpu_sibling_map().

While the new mask can be allocated in xen_pv_smp_prepare_cpus() one can
see that both versions of smp_prepare_cpus ops share a number of common
operations that can be factored out. So do that instead.

Fixes: 66558b730f25 ("sched: Add cluster scheduler level for x86")
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Juergen Gross <jgross@suse.com>
Link: https://lkml.kernel.org/r/1635896196-18961-1-git-send-email-boris.ostrovsky@oracle.com
arch/x86/include/asm/smp.h
arch/x86/kernel/smpboot.c
arch/x86/xen/smp_pv.c