• Jerry Hoemann's avatar
    x86/mm: account for PGDIR_SIZE alignment · 94544e2e
    Jerry Hoemann authored
    Patch for -stable.  Function find_early_table_space removed upstream.
    
    Fixes panic in alloc_low_page due to pgt_buf overflow during
    init_memory_mapping.
    
    find_early_table_space sizes pgt_buf based upon the size of the
    memory being mapped, but it does not take into account the alignment
    of the memory.  When the region being mapped spans a 512GB (PGDIR_SIZE)
    alignment, a panic from alloc_low_pages occurs.
    
    kernel_physical_mapping_init takes into account PGDIR_SIZE alignment.
    This causes an extra call to alloc_low_page to be made.  This extra call
    isn't accounted for by find_early_table_space and causes a kernel panic.
    
    Change is to take into account PGDIR_SIZE alignment in find_early_table_space.
    Signed-off-by: default avatarJerry Hoemann <jerry.hoemann@hp.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    94544e2e
init.c 11.7 KB