]> git.baikalelectronics.ru Git - kernel.git/commit
x86/xen: enable early use of set_fixmap in 32-bit Xen PV guest
authorJuergen Gross <jgross@suse.com>
Mon, 20 Aug 2018 15:24:20 +0000 (17:24 +0200)
committerBoris Ostrovsky <boris.ostrovsky@oracle.com>
Mon, 20 Aug 2018 18:46:26 +0000 (14:46 -0400)
commitd5e7509fc139ada569690c95074a499cf7eb4c49
tree89b3a7fa08753ecdf14490cf955152af3fe7d78f
parent0ef2db4f74f2b4ceba7a95a8ea183d0e878738be
x86/xen: enable early use of set_fixmap in 32-bit Xen PV guest

Commit b089bc1c74471e ("x86/xen/time: Initialize pv xen time in
init_hypervisor_platform()") moved the mapping of the shared info area
before pagetable_init(). This breaks booting as 32-bit PV guest as the
use of set_fixmap isn't possible at this time on 32-bit.

This can be worked around by populating the needed PMD on 32-bit
kernel earlier.

In order not to reimplement populate_extra_pte() using extend_brk()
for allocating new page tables extend alloc_low_pages() to do that in
case the early page table pool is not yet available.

Fixes: b089bc1c74471e ("x86/xen/time: Initialize pv xen time in init_hypervisor_platform()")
Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
arch/x86/mm/init.c
arch/x86/xen/enlighten_pv.c
arch/x86/xen/mmu_pv.c