The HugeTLB order check against __NR_USED_SUBPAGE is required only when HUGETLB_PAGE_OPTIMIZE_VMEMMAP is enabled. Hence BUG_ON() trigger should happen only when applicable. Cc: Muchun Song <muchun.song@xxxxxxxxx> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Cc: Oscar Salvador <osalvador@xxxxxxx> Cc: linux-mm@xxxxxxxxx Cc: linux-kernel@xxxxxxxxxxxxxxx Signed-off-by: Anshuman Khandual <anshuman.khandual@xxxxxxx> --- This patch applies on v6.13-rc1 Changes in V2: - Fixed #ifdef with CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP per Oscar Changes in V1: https://lore.kernel.org/all/20241202090728.78935-1-anshuman.khandual@xxxxxxx/ mm/hugetlb.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index ea2ed8e301ef..e6a5b21e3578 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -4513,11 +4513,13 @@ void __init hugetlb_add_hstate(unsigned int order) struct hstate *h; unsigned long i; - if (size_to_hstate(PAGE_SIZE << order)) { + if (size_to_hstate(PAGE_SIZE << order)) return; - } + BUG_ON(hugetlb_max_hstate >= HUGE_MAX_HSTATE); +#ifdef CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP BUG_ON(order < order_base_2(__NR_USED_SUBPAGE)); +#endif h = &hstates[hugetlb_max_hstate++]; __mutex_init(&h->resize_lock, "resize mutex", &h->resize_key); h->order = order; -- 2.30.2