xen: introduce generic helper checking for memory map conflicts
authorJuergen Gross <jgross@suse.com>
Fri, 2 Aug 2024 12:11:06 +0000 (14:11 +0200)
committerJuergen Gross <jgross@suse.com>
Tue, 10 Sep 2024 08:07:07 +0000 (10:07 +0200)
commitba88829706e2c5b7238638fc2b0713edf596495e
treeaaf0209b22148b474dbef27b3cbbe13a56efe282
parentfac1bceeeb04886fc2ee952672e6e6c85ce41dca
xen: introduce generic helper checking for memory map conflicts

When booting as a Xen PV dom0 the memory layout of the dom0 is
modified to match that of the host, as this requires less changes in
the kernel for supporting Xen.

There are some cases, though, which are problematic, as it is the Xen
hypervisor selecting the kernel's load address plus some other data,
which might conflict with the host's memory map.

These conflicts are detected at boot time and result in a boot error.
In order to support handling at least some of these conflicts in
future, introduce a generic helper function which will later gain the
ability to adapt the memory layout when possible.

Add the missing check for the xen_start_info area.

Note that possible p2m map and initrd memory conflicts are handled
already by copying the data to memory areas not conflicting with the
memory map. The initial stack allocated by Xen doesn't need to be
checked, as early boot code is switching to the statically allocated
initial kernel stack. Initial page tables and the kernel itself will
be handled later.

Signed-off-by: Juergen Gross <jgross@suse.com>
Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
arch/x86/xen/mmu_pv.c
arch/x86/xen/setup.c
arch/x86/xen/xen-ops.h