x86, mm: Find_early_table_space based on ranges that are actually being mapped
authorJacob Shin <jacob.shin@amd.com>
Wed, 24 Oct 2012 19:24:44 +0000 (14:24 -0500)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 6 Dec 2012 11:20:09 +0000 (11:20 +0000)
commit8d7a5b9d13e1681163bc7572d15e2093e3311bc7
tree83886748727687b325dedbddac3eb170e184001c
parent3493cfdd799c2be01fe935801fb4c99c14058e58
x86, mm: Find_early_table_space based on ranges that are actually being mapped

commit 844ab6f993b1d32eb40512503d35ff6ad0c57030 upstream.

Current logic finds enough space for direct mapping page tables from 0
to end. Instead, we only need to find enough space to cover mr[0].start
to mr[nr_range].end -- the range that is actually being mapped by
init_memory_mapping()

This is needed after 1bbbbe779aabe1f0768c2bf8f8c0a5583679b54a, to address
the panic reported here:

  https://lkml.org/lkml/2012/10/20/160
  https://lkml.org/lkml/2012/10/21/157

Signed-off-by: Jacob Shin <jacob.shin@amd.com>
Link: http://lkml.kernel.org/r/20121024195311.GB11779@jshin-Toonie
Tested-by: Tom Rini <trini@ti.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
[bwh: Backported to 3.2:
 - Adjust context
 - The log message format is a bit different]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/x86/mm/init.c