Re: [PATCH] hugetlb: fix resv_map leak in error path
From: Dave Hansen <hidden>
Date: 2012-05-22 21:01:17
Also in:
lkml
On 05/22/2012 01:45 PM, Andrew Morton wrote:
On Mon, 21 May 2012 13:28:14 -0700 Dave Hansen [off-list ref] wrote:quoted
When called for anonymous (non-shared) mappings, hugetlb_reserve_pages() does a resv_map_alloc(). It depends on code in hugetlbfs's vm_ops->close() to release that allocation. However, in the mmap() failure path, we do a plain unmap_region() without the remove_vma() which actually calls vm_ops->close(). This is a decent fix. This leak could get reintroduced if new code (say, after hugetlb_reserve_pages() in hugetlbfs_file_mmap()) decides to return an error. But, I think it would have to unroll the reservation anyway.How far back does this bug go? The patch applies to 3.4 but gets rejects in 3.3 and earlier.
commit 17c9d12e126cb0de8d535dc1908c4819d712bc68 Date: Wed Feb 11 16:34:16 2009 +0000 So, ~2.6.30. I don't think it existed before that. The code was there, but the ordering made it OK. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>