diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-01-30 13:33:49 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 13:33:49 +0100 |
commit | 0e3a95492989e452a33e5df9b51365da574b854d (patch) | |
tree | 8f108ca3685f6f6fe5e7d7034fee83d1a88ddb6a | |
parent | 927222b102186a6cc3e43e25062fcd18c800435e (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.c | 17 |
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) |