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); |