summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Mannthey <kmannth@us.ibm.com>2007-03-21 00:21:48 +0100
committerAdrian Bunk <bunk@stusta.de>2007-03-21 00:21:48 +0100
commit799a734f0342670020fd446532a22ddf4c0f3c08 (patch)
tree0360ea7334d0f21e8241146cb975758bb3f37774
parent521c8225cc9cb09c7cfe626ee12afe8cc76e9ed5 (diff)
i386 bootioremap / kexec fix
With CONFIG_PHYSICAL_START set to a non default values the i386 boot_ioremap code calculated its pte index wrong and users of boot_ioremap have their areas incorrectly mapped (for me SRAT table not mapped during early boot). This patch removes the addr < BOOT_PTE_PTRS constraint. Signed-off-by: Keith Mannthey <kmannth@us.ibm.com> Signed-off-by: Adrian Bunk <bunk@stusta.de>
-rw-r--r--arch/i386/mm/boot_ioremap.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/i386/mm/boot_ioremap.c b/arch/i386/mm/boot_ioremap.c
index 523b30634e0a..19921c54729e 100644
--- a/arch/i386/mm/boot_ioremap.c
+++ b/arch/i386/mm/boot_ioremap.c
@@ -30,8 +30,11 @@
*/
#define BOOT_PTE_PTRS (PTRS_PER_PTE*2)
-#define boot_pte_index(address) \
- (((address) >> PAGE_SHIFT) & (BOOT_PTE_PTRS - 1))
+
+static unsigned long boot_pte_index(unsigned long vaddr)
+{
+ return __pa(vaddr) >> PAGE_SHIFT;
+}
static inline boot_pte_t* boot_vaddr_to_pte(void *address)
{