summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2014-10-24 13:18:39 +0300
committerMarek Szyprowski <m.szyprowski@samsung.com>2014-10-27 13:00:54 +0100
commitf022d8cb7ec70fe8edd56383d876001317ee76b1 (patch)
tree3d45621da991a4b2b567c4447851fe6f7b5e87c3
parentcac7f2429872d3733dc3f9915857b1691da2eb2f (diff)
downloadlinux-f022d8cb7ec70fe8edd56383d876001317ee76b1.tar.gz
linux-f022d8cb7ec70fe8edd56383d876001317ee76b1.tar.bz2
linux-f022d8cb7ec70fe8edd56383d876001317ee76b1.zip
mm: cma: Don't crash on allocation if CMA area can't be activated
If activation of the CMA area fails its mutex won't be initialized, leading to an oops at allocation time when trying to lock the mutex. Fix this by setting the cma area count field to 0 when activation fails, leading to allocation returning NULL immediately. Cc: <stable@vger.kernel.org> # v3.17 Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Acked-by: Michal Nazarewicz <mina86@mina86.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
-rw-r--r--mm/cma.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/mm/cma.c b/mm/cma.c
index 963bc4add9af..5aa1a6f74dec 100644
--- a/mm/cma.c
+++ b/mm/cma.c
@@ -124,6 +124,7 @@ static int __init cma_activate_area(struct cma *cma)
err:
kfree(cma->bitmap);
+ cma->count = 0;
return -EINVAL;
}