This is a revision of an earlier attempt, with suggestions and concernes from previous conversation (https://lkml.org/lkml/2011/12/16/486) taken into account.
The following patchset creates direct mappings only for E820_RAM regions between 0 ~ max_low_pfn and 4GB ~ max_pfn. And leaves non-E820_RAM unmapped. Jacob Shin (5): x86: Only direct map addresses that are marked as E820_RAM x86: find_early_table_space based on memory ranges that are being mapped x86: Keep track of direct mapped pfn ranges x86: Fixup code testing if a pfn is direct mapped x86: Move enabling of PSE and PGE out of init_memory_mapping arch/x86/include/asm/page_types.h | 9 ++++ arch/x86/kernel/amd_gart_64.c | 4 +- arch/x86/kernel/cpu/amd.c | 6 +-- arch/x86/kernel/setup.c | 97 ++++++++++++++++++++++++++++++++++--- arch/x86/mm/init.c | 67 ++++++++++++------------- arch/x86/mm/init_64.c | 3 +- arch/x86/platform/efi/efi.c | 8 +-- arch/x86/platform/efi/efi_64.c | 2 + 8 files changed, 139 insertions(+), 57 deletions(-) -- 1.7.9.5 -- 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/