x86: ioremap fix failing nesting check
authorIngo Molnar <[email protected]>
Tue, 27 May 2008 07:56:49 +0000 (09:56 +0200)
committerThomas Gleixner <[email protected]>
Wed, 4 Jun 2008 11:11:47 +0000 (13:11 +0200)
Mika Kukkonen noticed that the nesting check in early_iounmap() is not
actually done.

Reported-by: Mika Kukkonen <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Thomas Gleixner <[email protected]>
arch/x86/mm/ioremap.c

index 71bb3159031afba912c9a60cad9f4510a3074ff3..2b2bb3f9b683156b7ef25aac9ccfeca69e90d364 100644 (file)
@@ -593,10 +593,11 @@ void __init early_iounmap(void *addr, unsigned long size)
        unsigned long offset;
        unsigned int nrpages;
        enum fixed_addresses idx;
-       unsigned int nesting;
+       int nesting;
 
        nesting = --early_ioremap_nested;
-       WARN_ON(nesting < 0);
+       if (WARN_ON(nesting < 0))
+               return;
 
        if (early_ioremap_debug) {
                printk(KERN_INFO "early_iounmap(%p, %08lx) [%d]\n", addr,