Messages in this thread | | | Subject | Re: [PATCH V3] arm64/hugetlb: Define __hugetlb_valid_size() | From | Anshuman Khandual <> | Date | Tue, 22 Feb 2022 11:29:00 +0530 |
| |
Hello Will,
Does this patch look okay now or is there anything else that needs to be improved. Please do let me know. Thank you.
- Anshuman
On 2/17/22 10:22 AM, Anshuman Khandual wrote: > arch_hugetlb_valid_size() can be just factored out to create another helper > to be used in arch_hugetlb_migration_supported() as well. This just defines > __hugetlb_valid_size() for that purpose. > > Cc: Catalin Marinas <catalin.marinas@arm.com> > Cc: Will Deacon <will@kernel.org> > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-kernel@vger.kernel.org > Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> > Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> > --- > This applies on v5.17-rc4 > > Changes in V3: > > - Moved up __hugetlb_valid_size() avoiding forward declaration per Will > > Changes in V2: > > https://lore.kernel.org/all/1644491770-16108-1-git-send-email-anshuman.khandual@arm.com/ > > - s/arm64_hugetlb_valid_size/__hugetlb_valid_size per Catalin > - Restored back warning in arch_hugetlb_migration_supported() per Catalin > - Updated the commit message subject line as required > > Changes in V1: > > https://lore.kernel.org/all/1644197468-26755-1-git-send-email-anshuman.khandual@arm.com/ > > arch/arm64/mm/hugetlbpage.c | 38 ++++++++++++++++++------------------- > 1 file changed, 18 insertions(+), 20 deletions(-) > > diff --git a/arch/arm64/mm/hugetlbpage.c b/arch/arm64/mm/hugetlbpage.c > index ffb9c229610a..a33aba91ad89 100644 > --- a/arch/arm64/mm/hugetlbpage.c > +++ b/arch/arm64/mm/hugetlbpage.c > @@ -56,25 +56,34 @@ void __init arm64_hugetlb_cma_reserve(void) > } > #endif /* CONFIG_CMA */ > > -#ifdef CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION > -bool arch_hugetlb_migration_supported(struct hstate *h) > +static bool __hugetlb_valid_size(unsigned long size) > { > - size_t pagesize = huge_page_size(h); > - > - switch (pagesize) { > + switch (size) { > #ifndef __PAGETABLE_PMD_FOLDED > case PUD_SIZE: > return pud_sect_supported(); > #endif > - case PMD_SIZE: > case CONT_PMD_SIZE: > + case PMD_SIZE: > case CONT_PTE_SIZE: > return true; > } > - pr_warn("%s: unrecognized huge page size 0x%lx\n", > - __func__, pagesize); > + > return false; > } > + > +#ifdef CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION > +bool arch_hugetlb_migration_supported(struct hstate *h) > +{ > + size_t pagesize = huge_page_size(h); > + > + if (!__hugetlb_valid_size(pagesize)) { > + pr_warn("%s: unrecognized huge page size 0x%lx\n", > + __func__, pagesize); > + return false; > + } > + return true; > +} > #endif > > int pmd_huge(pmd_t pmd) > @@ -506,16 +515,5 @@ arch_initcall(hugetlbpage_init); > > bool __init arch_hugetlb_valid_size(unsigned long size) > { > - switch (size) { > -#ifndef __PAGETABLE_PMD_FOLDED > - case PUD_SIZE: > - return pud_sect_supported(); > -#endif > - case CONT_PMD_SIZE: > - case PMD_SIZE: > - case CONT_PTE_SIZE: > - return true; > - } > - > - return false; > + return __hugetlb_valid_size(size); > } >
| |