From: minchan@kernel.org (Minchan Kim)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 -next 1/9] DMA, CMA: fix possible memory leak
Date: Mon, 16 Jun 2014 15:27:19 +0900 [thread overview]
Message-ID: <20140616062719.GA18790@bbox> (raw)
In-Reply-To: <1402897251-23639-2-git-send-email-iamjoonsoo.kim@lge.com>
Hi, Joonsoo
On Mon, Jun 16, 2014 at 02:40:43PM +0900, Joonsoo Kim wrote:
> We should free memory for bitmap when we find zone mis-match,
> otherwise this memory will leak.
>
> Additionally, I copy code comment from PPC KVM's CMA code to inform
> why we need to check zone mis-match.
>
> * Note
> Minchan suggested to add a tag for the stable, but, I don't do it,
> because I found this possibility during code-review and, IMO,
> this patch isn't suitable for stable tree.
Nice idea to put the comment in here. Thanks Joonsoo.
It seems you obey "It must fix a real bug that bothers people"
on Documentation/stable_kernel_rules.txt but it's a really obvious
bug and hard to get a report from people because limited user and
hard to detect small such small memory leak.
In my experince, Andrew perfered stable marking for such a obvious
problem but simple fix like this but not sure so let's pass the decision
to him and will learn a lesson from him and will follow the decision
from now on.
Thanks.
Acked-by: Minchan Kim <minchan@kernel.org>
>
> Acked-by: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
> Reviewed-by: Michal Nazarewicz <mina86@mina86.com>
> Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
> Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
>
> diff --git a/drivers/base/dma-contiguous.c b/drivers/base/dma-contiguous.c
> index 83969f8..6467c91 100644
> --- a/drivers/base/dma-contiguous.c
> +++ b/drivers/base/dma-contiguous.c
> @@ -176,14 +176,24 @@ static int __init cma_activate_area(struct cma *cma)
> base_pfn = pfn;
> for (j = pageblock_nr_pages; j; --j, pfn++) {
> WARN_ON_ONCE(!pfn_valid(pfn));
> + /*
> + * alloc_contig_range requires the pfn range
> + * specified to be in the same zone. Make this
> + * simple by forcing the entire CMA resv range
> + * to be in the same zone.
> + */
> if (page_zone(pfn_to_page(pfn)) != zone)
> - return -EINVAL;
> + goto err;
> }
> init_cma_reserved_pageblock(pfn_to_page(base_pfn));
> } while (--i);
>
> mutex_init(&cma->lock);
> return 0;
> +
> +err:
> + kfree(cma->bitmap);
> + return -EINVAL;
> }
>
> static struct cma cma_areas[MAX_CMA_AREAS];
> --
> 1.7.9.5
>
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo at kvack.org. For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@kvack.org"> email at kvack.org </a>
--
Kind regards,
Minchan Kim
next prev parent reply other threads:[~2014-06-16 6:27 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-16 5:40 [PATCH v3 -next 0/9] CMA: generalize CMA reserved area management code Joonsoo Kim
2014-06-16 5:40 ` [PATCH v3 -next 1/9] DMA, CMA: fix possible memory leak Joonsoo Kim
2014-06-16 6:27 ` Minchan Kim [this message]
2014-06-17 1:33 ` Joonsoo Kim
2014-06-16 5:40 ` [PATCH v3 -next 2/9] DMA, CMA: separate core CMA management codes from DMA APIs Joonsoo Kim
2014-06-16 5:40 ` [PATCH v3 -next 3/9] DMA, CMA: support alignment constraint on CMA region Joonsoo Kim
2014-06-16 5:40 ` [PATCH v3 -next 4/9] DMA, CMA: support arbitrary bitmap granularity Joonsoo Kim
2014-06-18 20:48 ` Andrew Morton
2014-06-19 8:18 ` Joonsoo Kim
2014-06-16 5:40 ` [PATCH v3 -next 5/9] CMA: generalize CMA reserved area management functionality Joonsoo Kim
2014-07-17 8:52 ` Marek Szyprowski
2014-07-17 9:36 ` [PATCH] CMA: generalize CMA reserved area management functionality (fixup) Marek Szyprowski
2014-07-17 22:06 ` Andrew Morton
2014-07-18 7:33 ` Marek Szyprowski
2014-06-16 5:40 ` [PATCH v3 -next 6/9] PPC, KVM, CMA: use general CMA reserved area management framework Joonsoo Kim
2014-06-16 5:40 ` [PATCH v3 -next 7/9] mm, CMA: clean-up CMA allocation error path Joonsoo Kim
2014-06-16 5:40 ` [PATCH v3 -next 8/9] mm, CMA: change cma_declare_contiguous() to obey coding convention Joonsoo Kim
2014-06-16 5:40 ` [PATCH v3 -next 9/9] mm, CMA: clean-up log message Joonsoo Kim
2014-06-16 9:11 ` [PATCH v3 -next 0/9] CMA: generalize CMA reserved area management code Marek Szyprowski
2014-06-17 1:25 ` Joonsoo Kim
2014-06-18 20:51 ` Andrew Morton
2014-06-24 7:52 ` Joonsoo Kim
2014-06-25 12:33 ` Marek Szyprowski
2014-06-25 20:04 ` Andrew Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140616062719.GA18790@bbox \
--to=minchan@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).