xen/x86: allow PVH Dom0 without XEN_PV=y
authorJan Beulich <jbeulich@suse.com>
Thu, 30 Sep 2021 12:16:47 +0000 (14:16 +0200)
committerJuergen Gross <jgross@suse.com>
Tue, 5 Oct 2021 06:35:56 +0000 (08:35 +0200)
commitcae7d81a3730dfe08623f8c1083230c8d0987639
tree4c3c79574247bcf5c27e6bb4e1e75e35bbe17f08
parent9172b5c4a778da1f855b2e3780b1afabb3cfd523
xen/x86: allow PVH Dom0 without XEN_PV=y

Decouple XEN_DOM0 from XEN_PV, converting some existing uses of XEN_DOM0
to a new XEN_PV_DOM0. (I'm not convinced all are really / should really
be PV-specific, but for starters I've tried to be conservative.)

For PVH Dom0 the hypervisor populates MADT with only x2APIC entries, so
without x2APIC support enabled in the kernel things aren't going to work
very well. (As opposed, DomU-s would only ever see LAPIC entries in MADT
as of now.) Note that this then requires PVH Dom0 to be 64-bit, as
X86_X2APIC depends on X86_64.

In the course of this xen_running_on_version_or_later() needs to be
available more broadly. Move it from a PV-specific to a generic file,
considering that what it does isn't really PV-specific at all anyway.

Note that xen/interface/version.h cannot be included on its own; in
enlighten.c, which uses SCHEDOP_* anyway, include xen/interface/sched.h
first to resolve the apparently sole missing type (xen_ulong_t).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/983bb72f-53df-b6af-14bd-5e088bd06a08@suse.com
Signed-off-by: Juergen Gross <jgross@suse.com>
arch/x86/include/asm/xen/pci.h
arch/x86/pci/xen.c
arch/x86/xen/Kconfig
arch/x86/xen/Makefile
arch/x86/xen/enlighten.c
arch/x86/xen/enlighten_pv.c
arch/x86/xen/xen-ops.h
drivers/xen/Kconfig