From: Russell King Date: Thu, 22 Sep 2011 09:32:25 +0000 (+0100) Subject: ARM: dma-mapping: free allocated page if unable to map X-Git-Tag: upstream/snapshot3+hdmi~9030^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d8e89b47e00ee80e920761145144640aac4cf71a;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git ARM: dma-mapping: free allocated page if unable to map If the attempt to map a page for DMA fails (eg, because we're out of mapping space) then we must not hold on to the page we allocated for DMA - doing so will result in a memory leak. Cc: Reported-by: Bryan Phillippe Tested-by: Bryan Phillippe Signed-off-by: Russell King --- diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index 0a0a1e7..c3ff82f 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c @@ -324,6 +324,8 @@ __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp, if (addr) *handle = pfn_to_dma(dev, page_to_pfn(page)); + else + __dma_free_buffer(page, size); return addr; }