On Sun, 28 Jul 2024 at 13:23, David Laight <David.Laight@xxxxxxxxxx> wrote: > > MIN() (and probably your MIN_T()) ought to have a check for > being a constant in order to stop misuse. No, we have a number of "runtime constants" that are basically "constants" set up at boot-time for the architecture,as pointed out by the powerpc people in private: Ie, we have arch/powerpc/include/asm/page.h: #define HPAGE_SHIFT hpage_shift and then #define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT) and then #define pageblock_order MIN_T(unsigned int, HUGETLB_PAGE_ORDER, MAX_PAGE_ORDER) and we really *REALLY* don't want to force the complicated "min_t()" (or, worse yet, "min()") functions here just because there's actually a variable involved. That variable gets initialized early in hugetlbpage_init_defaultsize(), so it's *effectively* a constant, but not as far as the compiler is concerned. Linus