On Thu, 2008-02-14 at 13:06 +0100, Andi Kleen wrote:
Because during early boot stage, alloc_page() is not available. If we do
it there, we must make more pages executable to avoid alloc_page(). It
may be acceptable for 2M mapping (aligned memory range with 2M), but I
think it is not acceptable for 1G mapping (aligned memory range with
Maybe it is the better method that always using the fixmap (efi_ioremap)
to map executable memory area to avoid split large mapping.
This is the original method. The issue is that it must be synced with
set_memory_*() and lookup_address() implementation. For example, it
lacked 1G support when that is added to lookup_address().