From: Ingo Molnar <mingo@elte.hu>
Date: Wed, 30 Jan 2008 12:33:47 +0000 (+0100)
Subject: x86: add early_ioremap() leak detection
X-Git-Tag: v2.6.25-rc1~1143^2~123
X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=d690b2afd5a7a02816386aa704c8c0b1aca8d2de;p=linux-2.6-omap-h63xx.git

x86: add early_ioremap() leak detection

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---

diff --git a/arch/x86/mm/ioremap_32.c b/arch/x86/mm/ioremap_32.c
index 7f7daf50efe..b743de841f6 100644
--- a/arch/x86/mm/ioremap_32.c
+++ b/arch/x86/mm/ioremap_32.c
@@ -311,6 +311,22 @@ static inline void __init early_clear_fixmap(enum fixed_addresses idx)
 
 int __initdata early_ioremap_nested;
 
+static int __init check_early_ioremap_leak(void)
+{
+	if (!early_ioremap_nested)
+		return 0;
+
+	printk(KERN_WARNING
+		"Debug warning: early ioremap leak of %d areas detected.\n",
+			early_ioremap_nested);
+	printk(KERN_WARNING
+		"please boot with early_ioremap_debug and report the dmesg.\n");
+	WARN_ON(1);
+
+	return 1;
+}
+late_initcall(check_early_ioremap_leak);
+
 void __init *early_ioremap(unsigned long phys_addr, unsigned long size)
 {
 	unsigned long offset, last_addr;