[PATCH] x86-64: Kill temp boot pmds
authorVivek Goyal <vgoyal@in.ibm.com>
Wed, 2 May 2007 17:27:06 +0000 (19:27 +0200)
committerAndi Kleen <andi@basil.nowhere.org>
Wed, 2 May 2007 17:27:06 +0000 (19:27 +0200)
commitdafe41ee3a9389c08c91cdfd8670295f20f89e04
treec4e8feff6c01728465e670cc87295444d996f318
parent9d291e787b2b71d1b57e5fbb24ba9c70e748ed84
[PATCH] x86-64: Kill temp boot pmds

Early in the boot process we need the ability to set
up temporary mappings, before our normal mechanisms are
initialized.  Currently this is used to map pages that
are part of the page tables we are building and pages
during the dmi scan.

The core problem is that we are using the user portion of
the page tables to implement this.  Which means that while
this mechanism is active we cannot catch NULL pointer dereferences
and we deviate from the normal ways of handling things.

In this patch I modify early_ioremap to map pages into
the kernel portion of address space, roughly where
we will later put modules, and I make the discovery of
which addresses we can use dynamic which removes all
kinds of static limits and remove the dependencies
on implementation details between different parts of the code.

Now alloc_low_page() and unmap_low_page() use
early_iomap() and early_iounmap() to allocate/map and
unmap a page.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
arch/x86_64/kernel/head.S
arch/x86_64/mm/init.c