Skip to content
  • Konrad Rzeszutek Wilk's avatar
    Revert "xen/x86: Workaround 64-bit hypervisor and 32-bit initial domain." and... · 51faaf2b
    Konrad Rzeszutek Wilk authored
    Revert "xen/x86: Workaround 64-bit hypervisor and 32-bit initial domain." and "xen/x86: Use memblock_reserve for sensitive areas."
    
    This reverts commit 806c312e and
    commit 59b29440
    
    .
    
    And also documents setup.c and why we want to do it that way, which
    is that we tried to make the the memblock_reserve more selective so
    that it would be clear what region is reserved. Sadly we ran
    in the problem wherein on a 64-bit hypervisor with a 32-bit
    initial domain, the pt_base has the cr3 value which is not
    neccessarily where the pagetable starts! As Jan put it: "
    Actually, the adjustment turns out to be correct: The page
    tables for a 32-on-64 dom0 get allocated in the order "first L1",
    "first L2", "first L3", so the offset to the page table base is
    indeed 2. When reading xen/include/public/xen.h's comment
    very strictly, this is not a violation (since there nothing is said
    that the first thing in the page table space is pointed to by
    pt_base; I admit that this seems to be implied though, namely
    do I think that it is implied that the page table space is the
    range [pt_base, pt_base + nt_pt_frames), whereas that
    range here indeed is [pt_base - 2, pt_base - 2 + nt_pt_frames),
    which - without a priori knowledge - the kernel would have
    difficulty to figure out)." - so lets just fall back to the
    easy way and reserve the whole region.
    
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    51faaf2b