• Ian Campbell's avatar
    xen: x86/32: perform initial startup on initial_page_table · 5b5c1af1
    Ian Campbell authored
    Only make swapper_pg_dir readonly and pinned when generic x86 architecture code
    (which also starts on initial_page_table) switches to it.  This helps ensure
    that the generic setup paths work on Xen unmodified. In particular
    clone_pgd_range writes directly to the destination pgd entries and is used to
    initialise swapper_pg_dir so we need to ensure that it remains writeable until
    the last possible moment during bring up.
    
    This is complicated slightly by the need to avoid sharing kernel PMD entries
    when running under Xen, therefore the Xen implementation must make a copy of
    the kernel PMD (which is otherwise referred to by both intial_page_table and
    swapper_pg_dir) before switching to swapper_pg_dir.
    Signed-off-by: default avatarIan Campbell <ian.campbell@citrix.com>
    Tested-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: H. Peter Anvin <hpa@linux.intel.com>
    Cc: Jeremy Fitzhardinge <jeremy@goop.org>
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    5b5c1af1
enlighten.c 31.7 KB