core: Mark page_map_hvirt2phys argument const

Allows to pass in pointers to constant data without generating warnings.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
core: Allow dummy-read to hypervisor core region from Linux cell

In order to support the shutdown process which may have to fault-in the
hypervisor mapping into Linux address space, allow read access to the
physical region that contains the hypervisor core and the per-CPU data
structures. We simple expose an empty (zeroed) page to Linux.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
driver: Fault-in hypervisor core pages before shutting down

Linux tends to apply changes to kernel mappings lazily to mm structs. If
this hits us in the middle of the world switch during shutdown, we will
triple-fault. Avoid this by touching all hypervisor core and per-CPU
pages in the IPI handler before triggering the hypercall.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
arm: Fix build

More blunt hacks to keep it building.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
driver: Map hypervisor at fixed virtual address

First step to overcome relocation of the hypervisor and to stabilize its
configuration footprint after loading: We reserve a fixed virtual
address range from the kernel and simply map the hypervisor there. The
address is, of course, architecture specific, may even require
adjustments per target. But the advantages of having a stable
configuration in memory that can rather easily checked after setup and
the simplifications in the hypervisor code when it will always have the
same virtual address outweighs this.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>