powerpc/mm/hugetlb: Sanity check gigantic hugepage count
authorJames Yang <James.Yang@freescale.com>
Fri, 14 Nov 2014 18:32:24 +0000 (12:32 -0600)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 2 Dec 2014 03:10:09 +0000 (14:10 +1100)
Limit the number of gigantic hugepages specified by the
hugepages= parameter to MAX_NUMBER_GPAGES.

Signed-off-by: James Yang <James.Yang@freescale.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/mm/hugetlbpage.c

index af56de82375d57affd3d8fc2e1ac89676b8cca50..747e0c616526ec2b102d4cea949d326db91fd357 100644 (file)
@@ -355,6 +355,13 @@ static int __init do_gpage_early_setup(char *param, char *val,
                if (size != 0) {
                        if (sscanf(val, "%lu", &npages) <= 0)
                                npages = 0;
+                       if (npages > MAX_NUMBER_GPAGES) {
+                               pr_warn("MMU: %lu pages requested for page "
+                                       "size %llu KB, limiting to "
+                                       __stringify(MAX_NUMBER_GPAGES) "\n",
+                                       npages, size / 1024);
+                               npages = MAX_NUMBER_GPAGES;
+                       }
                        gpage_npages[shift_to_mmu_psize(__ffs(size))] = npages;
                        size = 0;
                }