summaryrefslogtreecommitdiff
path: root/arch/tile/mm/pgtable.c
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@tilera.com>2013-08-07 23:42:34 +0400
committerChris Metcalf <cmetcalf@tilera.com>2013-08-14 00:26:25 +0400
commitfad052dc4be7b1d9e7ff40ccd8ba2b8216823b51 (patch)
tree8c797b21480c322dab8542e8a5d851b014496c70 /arch/tile/mm/pgtable.c
parent4a556f4f56da3110b27e265b79f0e7582115445c (diff)
downloadlinux-fad052dc4be7b1d9e7ff40ccd8ba2b8216823b51.tar.xz
tile: avoid struct vm_struct leak
If ioreamp_prot() fails in ioremap_page_range() due to kernel memory exhaustion, we previously would leak a struct vm_struct. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Diffstat (limited to 'arch/tile/mm/pgtable.c')
-rw-r--r--arch/tile/mm/pgtable.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/tile/mm/pgtable.c b/arch/tile/mm/pgtable.c
index dfd63ce87327..2bd572be9dba 100644
--- a/arch/tile/mm/pgtable.c
+++ b/arch/tile/mm/pgtable.c
@@ -568,7 +568,7 @@ void __iomem *ioremap_prot(resource_size_t phys_addr, unsigned long size,
addr = area->addr;
if (ioremap_page_range((unsigned long)addr, (unsigned long)addr + size,
phys_addr, pgprot)) {
- remove_vm_area((void *)(PAGE_MASK & (unsigned long) addr));
+ free_vm_area(area);
return NULL;
}
return (__force void __iomem *) (offset + (char *)addr);