From: Ingo Molnar Date: Thu, 28 Feb 2008 13:02:08 +0000 (+0100) Subject: x86: fix leak un ioremap_page_range() failure X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=b16bf712f491808a8c926dd481c696fe7d73ee5a;p=GitHub%2FLineageOS%2Fandroid_kernel_samsung_universal7580.git x86: fix leak un ioremap_page_range() failure Jan Beulich noticed it during code review that if a driver's ioremap() fails (say due to -ENOMEM) then we might leak the struct vm_area. Free it properly. Signed-off-by: Ingo Molnar --- diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c index 882328efc3d..ac3c959e271 100644 --- a/arch/x86/mm/ioremap.c +++ b/arch/x86/mm/ioremap.c @@ -162,7 +162,7 @@ static void __iomem *__ioremap(unsigned long phys_addr, unsigned long size, area->phys_addr = phys_addr; vaddr = (unsigned long) area->addr; if (ioremap_page_range(vaddr, vaddr + size, phys_addr, prot)) { - remove_vm_area((void *)(vaddr & PAGE_MASK)); + free_vm_area(area); return NULL; }