]> git.karo-electronics.de Git - karo-tx-linux.git/commit
x86/mm: account for PGDIR_SIZE alignment
authorJerry Hoemann <jerry.hoemann@hp.com>
Tue, 30 Apr 2013 21:15:55 +0000 (15:15 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 11 May 2013 20:38:03 +0000 (13:38 -0700)
commitdadd72be605e99445bedfacce8d07a85ac84eb41
tree4f5f95509767b89bc3b205dc50370806994784d3
parentd47f90f3cb58908bb6f6720b678e37e57028a590
x86/mm: account for PGDIR_SIZE alignment

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: Jerry Hoemann <jerry.hoemann@hp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/mm/init.c