diff options
author | keith mannthey <kmannth@us.ibm.com> | 2006-09-25 19:24:39 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-25 20:38:35 -0400 |
commit | 24fd425edd53ea580cad917e825c1f6715e9b939 (patch) | |
tree | bcd6d5394434edb960fe71ebc9173324980cba35 | |
parent | 0b16f21f144010aa627c58b3a33be49ebfd685dc (diff) |
[PATCH] 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.
[ Keith says this is applicable to 2.6.16 and 2.6.17 as well ]
Signed-off-by: Keith Mannthey<kmannth@us.ibm.com>
Cc: Vivek Goyal <vgoyal@in.ibm.com>
Cc: Dave Hansen <haveblue@us.ibm.com>
Cc: <stable@kernel.org>
Cc: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | arch/i386/mm/boot_ioremap.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/i386/mm/boot_ioremap.c b/arch/i386/mm/boot_ioremap.c index 5d44f4f5ff59..4de11f508c3a 100644 --- a/arch/i386/mm/boot_ioremap.c +++ b/arch/i386/mm/boot_ioremap.c | |||
@@ -29,8 +29,11 @@ | |||
29 | */ | 29 | */ |
30 | 30 | ||
31 | #define BOOT_PTE_PTRS (PTRS_PER_PTE*2) | 31 | #define BOOT_PTE_PTRS (PTRS_PER_PTE*2) |
32 | #define boot_pte_index(address) \ | 32 | |
33 | (((address) >> PAGE_SHIFT) & (BOOT_PTE_PTRS - 1)) | 33 | static unsigned long boot_pte_index(unsigned long vaddr) |
34 | { | ||
35 | return __pa(vaddr) >> PAGE_SHIFT; | ||
36 | } | ||
34 | 37 | ||
35 | static inline boot_pte_t* boot_vaddr_to_pte(void *address) | 38 | static inline boot_pte_t* boot_vaddr_to_pte(void *address) |
36 | { | 39 | { |