Only create mapping for E820_820 and E820_RESERVED_KERN. Seperate calculate_table_space_size and find_early_page_table out with init_memory_mapping.
Also for 64bit, first 1M's page table will be in BRK. For other range, will allocate page table one time, but init mapping only for E820 RAM and E820_RESERVED_KERN. Could be found at: git://git.kernel.org/pub/scm/linux/kernel/git/yinghai/linux-yinghai.git for-x86-mm Thanks Yinghai Jacob Shin (4): x86: if kernel .text .data .bss are not marked as E820_RAM, complain and fix x86: Fixup code testing if a pfn is direct mapped x86: Only direct map addresses that are marked as E820_RAM x86/mm: calculate_table_space_size based on memory ranges that are being mapped Yinghai Lu (9): x86, mm: Add global page_size_mask x86, mm: Split out split_mem_range x86, mm: Moving init_memory_mapping calling x86, mm: Revert back good_end setting for 64bit x86, mm: Find early page table only one time x86, mm: Separate out calculate_table_space_size() x86, mm: Move down two calculate_table_space_size down. x86, mm: Use func pointer to table size calculation and mapping. x86, 64bit: Map first 1M ram early before memblock_x86_fill() arch/x86/include/asm/init.h | 1 - arch/x86/include/asm/page_types.h | 3 + arch/x86/include/asm/pgtable.h | 2 + arch/x86/kernel/cpu/amd.c | 8 +- arch/x86/kernel/head64.c | 2 +- arch/x86/kernel/setup.c | 36 ++-- arch/x86/mm/init.c | 381 ++++++++++++++++++++++++++----------- arch/x86/mm/init_64.c | 13 +- arch/x86/platform/efi/efi.c | 8 +- 9 files changed, 315 insertions(+), 139 deletions(-) -- 1.7.7 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/