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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  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@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]