On Wed, Apr 01, 2020 at 11:38:16AM -0700, Mike Kravetz wrote: > diff --git a/arch/arm64/include/asm/hugetlb.h b/arch/arm64/include/asm/hugetlb.h > index 2eb6c234d594..81606223494f 100644 > --- a/arch/arm64/include/asm/hugetlb.h > +++ b/arch/arm64/include/asm/hugetlb.h > @@ -59,6 +59,8 @@ extern void huge_pte_clear(struct mm_struct *mm, unsigned long addr, > extern void set_huge_swap_pte_at(struct mm_struct *mm, unsigned long addr, > pte_t *ptep, pte_t pte, unsigned long sz); > #define set_huge_swap_pte_at set_huge_swap_pte_at > +bool __init arch_hugetlb_valid_size(unsigned long size); > +#define arch_hugetlb_valid_size arch_hugetlb_valid_size Sorry for chimming in late. Since we're working on removing arch-dependent codes after all.. I'm thinking whether we can define arch_hugetlb_valid_size() once in the common header (e.g. linux/hugetlb.h), then in mm/hugetlb.c: bool __init __attribute((weak)) arch_hugetlb_valid_size(unsigned long size) { return size == HPAGE_SIZE; } We can simply redefine arch_hugetlb_valid_size() in arch specific C files where we want to override the default. Would that be slightly cleaner? Thanks, -- Peter Xu