• Andi Kleen's avatar
    [PATCH] x86_64: Avoid EBDA area in early boot allocator · ac71d12c
    Andi Kleen authored
    Based on analysis&patch from Robert Hentosch
    
    Observed on a Dell PE6850 with 16GB
    
    The problem occurs very early on, when the kernel allocates space for the
    temporary memory map called bootmap. The bootmap overlaps the EBDA region.
    EBDA region is not historically reserved in the e820 mapping. When the
    bootmap is freed it marks the EBDA region as usable.
    
    If you notice in setup.c there is already code to work around the EBDA
    in reserve_ebda_region(), this check however occurs after the bootmap
    is allocated and doesn't prevent the bootmap from using this range.
    
    AK: I redid the original patch. Thanks also to Jan Beulich for
    spotting some mistakes.
    
    Cc: Robert_Hentosch@dell.com
    Cc: jbeulich@novell.com
    Signed-off-by: default avatarAndi Kleen <ak@suse.de>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    ac71d12c
e820.c 18 KB