x86: use remove_vm_are in ioremap_32 error path
authorThomas Gleixner <tglx@linutronix.de>
Wed, 30 Jan 2008 12:34:05 +0000 (13:34 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 30 Jan 2008 12:34:05 +0000 (13:34 +0100)
When ioremap_page_range fails, then we can use remove_vm_area instead
of vunmap safely.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/mm/ioremap_32.c

index 5273ac4aa96a7e0bfc46a7ae597acb0ee4085603..4d919c37d1d6211d7213a4bb17e5b05d944a7adb 100644 (file)
@@ -118,7 +118,7 @@ void __iomem *__ioremap(unsigned long phys_addr, unsigned long size,
        addr = (void __iomem *) area->addr;
        if (ioremap_page_range((unsigned long)addr, (unsigned long)addr + size,
                               phys_addr, pgprot)) {
-               vunmap((void __force *) addr);
+               remove_vm_area((void *)(PAGE_MASK & (unsigned long) addr));
                return NULL;
        }