hugetlbpage.c (7318234c8d7c0f209f993ee46a7ea148efdb28b9) hugetlbpage.c (ae94da898133947c2d1f005da10838478e4548db)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * arch/arm64/mm/hugetlbpage.c
4 *
5 * Copyright (C) 2013 Linaro Ltd.
6 *
7 * Based on arch/x86/mm/hugetlbpage.c.
8 */

--- 450 unchanged lines hidden (view full) ---

459 add_huge_page_size(CONT_PMD_SIZE);
460 add_huge_page_size(PMD_SIZE);
461 add_huge_page_size(CONT_PTE_SIZE);
462
463 return 0;
464}
465arch_initcall(hugetlbpage_init);
466
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * arch/arm64/mm/hugetlbpage.c
4 *
5 * Copyright (C) 2013 Linaro Ltd.
6 *
7 * Based on arch/x86/mm/hugetlbpage.c.
8 */

--- 450 unchanged lines hidden (view full) ---

459 add_huge_page_size(CONT_PMD_SIZE);
460 add_huge_page_size(PMD_SIZE);
461 add_huge_page_size(CONT_PTE_SIZE);
462
463 return 0;
464}
465arch_initcall(hugetlbpage_init);
466
467static __init int setup_hugepagesz(char *opt)
467bool __init arch_hugetlb_valid_size(unsigned long size)
468{
468{
469 unsigned long ps = memparse(opt, &opt);
470
471 switch (ps) {
469 switch (size) {
472#ifdef CONFIG_ARM64_4K_PAGES
473 case PUD_SIZE:
474#endif
475 case CONT_PMD_SIZE:
476 case PMD_SIZE:
477 case CONT_PTE_SIZE:
470#ifdef CONFIG_ARM64_4K_PAGES
471 case PUD_SIZE:
472#endif
473 case CONT_PMD_SIZE:
474 case PMD_SIZE:
475 case CONT_PTE_SIZE:
476 return true;
477 }
478
479 return false;
480}
481
482static __init int setup_hugepagesz(char *opt)
483{
484 unsigned long ps = memparse(opt, &opt);
485
486 if (arch_hugetlb_valid_size(ps)) {
478 add_huge_page_size(ps);
479 return 1;
480 }
481
482 hugetlb_bad_size();
483 pr_err("hugepagesz: Unsupported page size %lu K\n", ps >> 10);
484 return 0;
485}
486__setup("hugepagesz=", setup_hugepagesz);
487 add_huge_page_size(ps);
488 return 1;
489 }
490
491 hugetlb_bad_size();
492 pr_err("hugepagesz: Unsupported page size %lu K\n", ps >> 10);
493 return 0;
494}
495__setup("hugepagesz=", setup_hugepagesz);