From c23b133f62822e1aca957ce62fa4c6b2ac9c4312 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Wed, 30 Jan 2008 13:33:49 +0100 Subject: [PATCH] --- yaml --- r: 80455 b: refs/heads/master c: 0e3a95492989e452a33e5df9b51365da574b854d h: refs/heads/master i: 80453: e9c7dfde4f22df152f176844c6a7d39c3e03811a 80451: b20de35a16232059800834a516f582a9e3a2b314 80447: ab401c154c04f1e89dafe9ef9d1f198cea9feeca v: v3 --- [refs] | 2 +- trunk/arch/x86/mm/ioremap_32.c | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index e870a2f4ac87..fa75c0a82c67 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 927222b102186a6cc3e43e25062fcd18c800435e +refs/heads/master: 0e3a95492989e452a33e5df9b51365da574b854d diff --git a/trunk/arch/x86/mm/ioremap_32.c b/trunk/arch/x86/mm/ioremap_32.c index b743de841f68..f8e6c4709cc2 100644 --- a/trunk/arch/x86/mm/ioremap_32.c +++ b/trunk/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)