Skip to content
  • Konrad Rzeszutek Wilk's avatar
    xen/mmu: Copy and revector the P2M tree. · 7f914062
    Konrad Rzeszutek Wilk authored
    
    
    Please first read the description in "xen/p2m: Add logic to revector a
    P2M tree to use __va leafs" patch.
    
    The 'xen_revector_p2m_tree()' function allocates a new P2M tree
    copies the contents of the old one in it, and returns the new one.
    
    At this stage, the __ka address space (which is what the old
    P2M tree was using) is partially disassembled. The cleanup_highmap
    has removed the PMD entries from 0-16MB and anything past _brk_end
    up to the max_pfn_mapped (which is the end of the ramdisk).
    
    We have revectored the P2M tree (and the one for save/restore as well)
    to use new shiny __va address to new MFNs. The xen_start_info
    has been taken care of already in 'xen_setup_kernel_pagetable()' and
    xen_start_info->shared_info in 'xen_setup_shared_info()', so
    we are free to roam and delete PMD entries - which is exactly what
    we are going to do. We rip out the __ka for the old P2M array.
    
    [v1: Fix smatch warnings]
    [v2: memset was doing 0 instead of 0xff]
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    7f914062