]> git.hungrycats.org Git - linux/commitdiff
mm: cma: fix totalcma_pages to include DT defined CMA regions
authorGeorge G. Davis <ggdavisiv@gmail.com>
Wed, 11 Feb 2015 23:26:27 +0000 (15:26 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 2 Sep 2017 05:05:46 +0000 (07:05 +0200)
commit 94737a85f332aee75255960eaa16e89ddfa4c75a upstream.

The totalcma_pages variable is not updated to account for CMA regions
defined via device tree reserved-memory sub-nodes.  Fix this omission by
moving the calculation of totalcma_pages into cma_init_reserved_mem()
instead of cma_declare_contiguous() such that it will include reserved
memory used by all CMA regions.

Signed-off-by: George G. Davis <george_davis@mentor.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
mm/cma.c

index 15e00cd3a567beb9dde4c41cd045d2fc88e7a77b..701a4dc133efab04bfbb4a7e19da74c20854284e 100644 (file)
--- a/mm/cma.c
+++ b/mm/cma.c
@@ -200,6 +200,7 @@ int __init cma_init_reserved_mem(phys_addr_t base, phys_addr_t size,
        cma->order_per_bit = order_per_bit;
        *res_cma = cma;
        cma_area_count++;
+       totalcma_pages += (size / PAGE_SIZE);
 
        return 0;
 }
@@ -338,7 +339,6 @@ int __init cma_declare_contiguous(phys_addr_t base,
        if (ret)
                goto err;
 
-       totalcma_pages += (size / PAGE_SIZE);
        pr_info("Reserved %ld MiB at %pa\n", (unsigned long)size / SZ_1M,
                &base);
        return 0;