Re: [PATCH] hugetlb: fix resv_map leak in error path

From: Andrew Morton
Date: Tue May 22 2012 - 17:28:38 EST


On Tue, 22 May 2012 16:05:02 -0500 (CDT)
Christoph Lameter <cl@xxxxxxxxx> wrote:

> > How far back does this bug go? The patch applies to 3.4 but gets
> > rejects in 3.3 and earlier.
>
> The earliest that I have seen it on was 2.6.32. I have rediffed the patch
> against 2.6.32 and 3.2.0.

Great, thanks. I did

: From: Dave Hansen <dave@xxxxxxxxxxxxxxxxxx>
: Subject: hugetlb: fix resv_map leak in error path
:
: 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.
:
: Christoph's test case:
:
: http://marc.info/?l=linux-mm&m=133728900729735
:
: This patch applies to 3.4 and later. A version for earlier kernels is at
: https://lkml.org/lkml/2012/5/22/418.
:
: Signed-off-by: Dave Hansen <dave@xxxxxxxxxxxxxxxxxx>
: Acked-by: Mel Gorman <mel@xxxxxxxxx>
: Acked-by: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx>
: Reported-by: Christoph Lameter <cl@xxxxxxxxx>
: Tested-by: Christoph Lameter <cl@xxxxxxxxx>
: Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx>
: Cc: <stable@xxxxxxxxxxxxxxx> [2.6.32+]

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/