aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-01-30 13:33:49 +0100
committerIngo Molnar <mingo@elte.hu>2008-01-30 13:33:49 +0100
commit0e3a95492989e452a33e5df9b51365da574b854d (patch)
tree8f108ca3685f6f6fe5e7d7034fee83d1a88ddb6a
parent927222b102186a6cc3e43e25062fcd18c800435e (diff)
x86: early_ioremap_init(), enhance warnings
enhance the debug warning in early_ioremap_init(). Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--arch/x86/mm/ioremap_32.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/x86/mm/ioremap_32.c b/arch/x86/mm/ioremap_32.c
index b743de841f6..f8e6c4709cc 100644
--- a/arch/x86/mm/ioremap_32.c
+++ b/arch/x86/mm/ioremap_32.c
@@ -243,7 +243,22 @@ void __init early_ioremap_init(void)
pgd = early_ioremap_pgd(fix_to_virt(FIX_BTMAP_BEGIN));
*pgd = __pa(bm_pte) | _PAGE_TABLE;
memset(bm_pte, 0, sizeof(bm_pte));
- BUG_ON(pgd != early_ioremap_pgd(fix_to_virt(FIX_BTMAP_END)));
+ /*
+ * The boot-ioremap range spans multiple pgds, for which
+ * we are not prepared:
+ */
+ if (pgd != early_ioremap_pgd(fix_to_virt(FIX_BTMAP_END))) {
+ WARN_ON(1);
+ printk("pgd %p != %p\n",
+ pgd, early_ioremap_pgd(fix_to_virt(FIX_BTMAP_END)));
+ printk("fix_to_virt(FIX_BTMAP_BEGIN): %08lx\n",
+ fix_to_virt(FIX_BTMAP_BEGIN));
+ printk("fix_to_virt(FIX_BTMAP_END): %08lx\n",
+ fix_to_virt(FIX_BTMAP_END));
+
+ printk("FIX_BTMAP_END: %d\n", FIX_BTMAP_END);
+ printk("FIX_BTMAP_BEGIN: %d\n", FIX_BTMAP_BEGIN);
+ }
}
void __init early_ioremap_clear(void)