Hi Mike, FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant. tree: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-unstable head: 51551d71edbc998fd8c8afa7312db3d270f5998e commit: 03d7e648fa25961bb92e920e7962710aa72fb409 [225/293] loongarch: drop ranges for definition of ARCH_FORCE_MAX_ORDER config: loongarch-buildonly-randconfig-r002-20230322 (https://download.01.org/0day-ci/archive/20230324/202303240542.vEBPNs2Q-lkp@xxxxxxxxx/config) compiler: loongarch64-linux-gcc (GCC) 12.1.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/commit/?id=03d7e648fa25961bb92e920e7962710aa72fb409 git remote add akpm-mm https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git git fetch --no-tags akpm-mm mm-unstable git checkout 03d7e648fa25961bb92e920e7962710aa72fb409 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=loongarch olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=loongarch SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Link: https://lore.kernel.org/oe-kbuild-all/202303240542.vEBPNs2Q-lkp@xxxxxxxxx/ All error/warnings (new ones prefixed by >>): 886 | if (!valid_page && pageblock_aligned(low_pfn)) { | ^~~~~~~~~~~~~~~~~ mm/compaction.c: In function 'isolate_migratepages_range': include/linux/pageblock-flags.h:55:38: warning: left shift count is negative [-Wshift-count-negative] 55 | #define pageblock_nr_pages (1UL << pageblock_order) | ^~ include/uapi/linux/const.h:32:44: note: in definition of macro '__ALIGN_KERNEL_MASK' 32 | #define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask)) | ^ include/linux/align.h:9:33: note: in expansion of macro '__ALIGN_KERNEL' 9 | #define ALIGN_DOWN(x, a) __ALIGN_KERNEL((x) - ((a) - 1), (a)) | ^~~~~~~~~~~~~~ include/linux/pageblock-flags.h:58:41: note: in expansion of macro 'ALIGN_DOWN' 58 | #define pageblock_start_pfn(pfn) ALIGN_DOWN((pfn), pageblock_nr_pages) | ^~~~~~~~~~ include/linux/pageblock-flags.h:58:59: note: in expansion of macro 'pageblock_nr_pages' 58 | #define pageblock_start_pfn(pfn) ALIGN_DOWN((pfn), pageblock_nr_pages) | ^~~~~~~~~~~~~~~~~~ mm/compaction.c:1218:27: note: in expansion of macro 'pageblock_start_pfn' 1218 | block_start_pfn = pageblock_start_pfn(pfn); | ^~~~~~~~~~~~~~~~~~~ include/linux/pageblock-flags.h:55:38: warning: left shift count is negative [-Wshift-count-negative] 55 | #define pageblock_nr_pages (1UL << pageblock_order) | ^~ include/uapi/linux/const.h:32:50: note: in definition of macro '__ALIGN_KERNEL_MASK' 32 | #define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask)) | ^~~~ include/linux/align.h:9:33: note: in expansion of macro '__ALIGN_KERNEL' 9 | #define ALIGN_DOWN(x, a) __ALIGN_KERNEL((x) - ((a) - 1), (a)) | ^~~~~~~~~~~~~~ include/linux/pageblock-flags.h:58:41: note: in expansion of macro 'ALIGN_DOWN' 58 | #define pageblock_start_pfn(pfn) ALIGN_DOWN((pfn), pageblock_nr_pages) | ^~~~~~~~~~ include/linux/pageblock-flags.h:58:59: note: in expansion of macro 'pageblock_nr_pages' 58 | #define pageblock_start_pfn(pfn) ALIGN_DOWN((pfn), pageblock_nr_pages) | ^~~~~~~~~~~~~~~~~~ mm/compaction.c:1218:27: note: in expansion of macro 'pageblock_start_pfn' 1218 | block_start_pfn = pageblock_start_pfn(pfn); | ^~~~~~~~~~~~~~~~~~~ include/linux/pageblock-flags.h:55:38: warning: left shift count is negative [-Wshift-count-negative] 55 | #define pageblock_nr_pages (1UL << pageblock_order) | ^~ include/uapi/linux/const.h:32:61: note: in definition of macro '__ALIGN_KERNEL_MASK' 32 | #define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask)) | ^~~~ include/linux/align.h:9:33: note: in expansion of macro '__ALIGN_KERNEL' 9 | #define ALIGN_DOWN(x, a) __ALIGN_KERNEL((x) - ((a) - 1), (a)) | ^~~~~~~~~~~~~~ include/linux/pageblock-flags.h:58:41: note: in expansion of macro 'ALIGN_DOWN' 58 | #define pageblock_start_pfn(pfn) ALIGN_DOWN((pfn), pageblock_nr_pages) | ^~~~~~~~~~ include/linux/pageblock-flags.h:58:59: note: in expansion of macro 'pageblock_nr_pages' 58 | #define pageblock_start_pfn(pfn) ALIGN_DOWN((pfn), pageblock_nr_pages) | ^~~~~~~~~~~~~~~~~~ mm/compaction.c:1218:27: note: in expansion of macro 'pageblock_start_pfn' 1218 | block_start_pfn = pageblock_start_pfn(pfn); | ^~~~~~~~~~~~~~~~~~~ include/linux/pageblock-flags.h:55:38: warning: left shift count is negative [-Wshift-count-negative] 55 | #define pageblock_nr_pages (1UL << pageblock_order) | ^~ include/uapi/linux/const.h:32:50: note: in definition of macro '__ALIGN_KERNEL_MASK' 32 | #define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask)) | ^~~~ include/linux/align.h:8:33: note: in expansion of macro '__ALIGN_KERNEL' 8 | #define ALIGN(x, a) __ALIGN_KERNEL((x), (a)) | ^~~~~~~~~~~~~~ include/linux/pageblock-flags.h:59:41: note: in expansion of macro 'ALIGN' 59 | #define pageblock_end_pfn(pfn) ALIGN((pfn) + 1, pageblock_nr_pages) | ^~~~~ include/linux/pageblock-flags.h:59:58: note: in expansion of macro 'pageblock_nr_pages' 59 | #define pageblock_end_pfn(pfn) ALIGN((pfn) + 1, pageblock_nr_pages) | ^~~~~~~~~~~~~~~~~~ mm/compaction.c:1221:25: note: in expansion of macro 'pageblock_end_pfn' 1221 | block_end_pfn = pageblock_end_pfn(pfn); | ^~~~~~~~~~~~~~~~~ include/linux/pageblock-flags.h:55:38: warning: left shift count is negative [-Wshift-count-negative] 55 | #define pageblock_nr_pages (1UL << pageblock_order) | ^~ include/uapi/linux/const.h:32:61: note: in definition of macro '__ALIGN_KERNEL_MASK' 32 | #define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask)) | ^~~~ include/linux/align.h:8:33: note: in expansion of macro '__ALIGN_KERNEL' 8 | #define ALIGN(x, a) __ALIGN_KERNEL((x), (a)) | ^~~~~~~~~~~~~~ include/linux/pageblock-flags.h:59:41: note: in expansion of macro 'ALIGN' 59 | #define pageblock_end_pfn(pfn) ALIGN((pfn) + 1, pageblock_nr_pages) | ^~~~~ include/linux/pageblock-flags.h:59:58: note: in expansion of macro 'pageblock_nr_pages' 59 | #define pageblock_end_pfn(pfn) ALIGN((pfn) + 1, pageblock_nr_pages) | ^~~~~~~~~~~~~~~~~~ mm/compaction.c:1221:25: note: in expansion of macro 'pageblock_end_pfn' 1221 | block_end_pfn = pageblock_end_pfn(pfn); | ^~~~~~~~~~~~~~~~~ include/linux/pageblock-flags.h:55:38: warning: left shift count is negative [-Wshift-count-negative] 55 | #define pageblock_nr_pages (1UL << pageblock_order) | ^~ mm/compaction.c:1225:50: note: in expansion of macro 'pageblock_nr_pages' 1225 | block_end_pfn += pageblock_nr_pages) { | ^~~~~~~~~~~~~~~~~~ mm/compaction.c: In function 'compact_scanners_met': >> mm/compaction.c:1308:30: warning: right shift count is negative [-Wshift-count-negative] 1308 | return (cc->free_pfn >> pageblock_order) | ^~ mm/compaction.c:1309:37: warning: right shift count is negative [-Wshift-count-negative] 1309 | <= (cc->migrate_pfn >> pageblock_order); | ^~ In file included from include/linux/kernel.h:26: mm/compaction.c: In function 'fast_isolate_around': include/linux/pageblock-flags.h:55:38: warning: left shift count is negative [-Wshift-count-negative] 55 | #define pageblock_nr_pages (1UL << pageblock_order) | ^~ include/linux/minmax.h:28:27: note: in definition of macro '__cmp' 28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y)) | ^ include/linux/minmax.h:74:25: note: in expansion of macro '__careful_cmp' 74 | #define max(x, y) __careful_cmp(x, y, >) | ^~~~~~~~~~~~~ mm/compaction.c:1360:21: note: in expansion of macro 'max' 1360 | start_pfn = max(pageblock_start_pfn(pfn), cc->zone->zone_start_pfn); | ^~~ include/uapi/linux/const.h:31:41: note: in expansion of macro '__ALIGN_KERNEL_MASK' 31 | #define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1) | ^~~~~~~~~~~~~~~~~~~ include/linux/align.h:9:33: note: in expansion of macro '__ALIGN_KERNEL' 9 | #define ALIGN_DOWN(x, a) __ALIGN_KERNEL((x) - ((a) - 1), (a)) | ^~~~~~~~~~~~~~ include/linux/pageblock-flags.h:58:41: note: in expansion of macro 'ALIGN_DOWN' 58 | #define pageblock_start_pfn(pfn) ALIGN_DOWN((pfn), pageblock_nr_pages) | ^~~~~~~~~~ include/linux/pageblock-flags.h:58:59: note: in expansion of macro 'pageblock_nr_pages' 58 | #define pageblock_start_pfn(pfn) ALIGN_DOWN((pfn), pageblock_nr_pages) | ^~~~~~~~~~~~~~~~~~ mm/compaction.c:1360:25: note: in expansion of macro 'pageblock_start_pfn' 1360 | start_pfn = max(pageblock_start_pfn(pfn), cc->zone->zone_start_pfn); | ^~~~~~~~~~~~~~~~~~~ include/linux/pageblock-flags.h:55:38: warning: left shift count is negative [-Wshift-count-negative] 55 | #define pageblock_nr_pages (1UL << pageblock_order) | ^~ include/linux/minmax.h:28:27: note: in definition of macro '__cmp' 28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y)) | ^ include/linux/minmax.h:74:25: note: in expansion of macro '__careful_cmp' 74 | #define max(x, y) __careful_cmp(x, y, >) | ^~~~~~~~~~~~~ mm/compaction.c:1360:21: note: in expansion of macro 'max' 1360 | start_pfn = max(pageblock_start_pfn(pfn), cc->zone->zone_start_pfn); | ^~~ include/uapi/linux/const.h:31:41: note: in expansion of macro '__ALIGN_KERNEL_MASK' 31 | #define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1) | ^~~~~~~~~~~~~~~~~~~ include/linux/align.h:9:33: note: in expansion of macro '__ALIGN_KERNEL' 9 | #define ALIGN_DOWN(x, a) __ALIGN_KERNEL((x) - ((a) - 1), (a)) | ^~~~~~~~~~~~~~ include/linux/pageblock-flags.h:58:41: note: in expansion of macro 'ALIGN_DOWN' 58 | #define pageblock_start_pfn(pfn) ALIGN_DOWN((pfn), pageblock_nr_pages) | ^~~~~~~~~~ include/linux/pageblock-flags.h:58:59: note: in expansion of macro 'pageblock_nr_pages' 58 | #define pageblock_start_pfn(pfn) ALIGN_DOWN((pfn), pageblock_nr_pages) | ^~~~~~~~~~~~~~~~~~ mm/compaction.c:1360:25: note: in expansion of macro 'pageblock_start_pfn' 1360 | start_pfn = max(pageblock_start_pfn(pfn), cc->zone->zone_start_pfn); | ^~~~~~~~~~~~~~~~~~~ include/linux/pageblock-flags.h:55:38: warning: left shift count is negative [-Wshift-count-negative] 55 | #define pageblock_nr_pages (1UL << pageblock_order) | ^~ include/linux/minmax.h:28:27: note: in definition of macro '__cmp' 28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y)) | ^ include/linux/minmax.h:74:25: note: in expansion of macro '__careful_cmp' 74 | #define max(x, y) __careful_cmp(x, y, >) | ^~~~~~~~~~~~~ mm/compaction.c:1360:21: note: in expansion of macro 'max' 1360 | start_pfn = max(pageblock_start_pfn(pfn), cc->zone->zone_start_pfn); | ^~~ include/uapi/linux/const.h:31:41: note: in expansion of macro '__ALIGN_KERNEL_MASK' 31 | #define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1) | ^~~~~~~~~~~~~~~~~~~ include/linux/align.h:9:33: note: in expansion of macro '__ALIGN_KERNEL' 9 | #define ALIGN_DOWN(x, a) __ALIGN_KERNEL((x) - ((a) - 1), (a)) | ^~~~~~~~~~~~~~ include/linux/pageblock-flags.h:58:41: note: in expansion of macro 'ALIGN_DOWN' 58 | #define pageblock_start_pfn(pfn) ALIGN_DOWN((pfn), pageblock_nr_pages) | ^~~~~~~~~~ include/linux/pageblock-flags.h:58:59: note: in expansion of macro 'pageblock_nr_pages' 58 | #define pageblock_start_pfn(pfn) ALIGN_DOWN((pfn), pageblock_nr_pages) | ^~~~~~~~~~~~~~~~~~ mm/compaction.c:1360:25: note: in expansion of macro 'pageblock_start_pfn' 1360 | start_pfn = max(pageblock_start_pfn(pfn), cc->zone->zone_start_pfn); | ^~~~~~~~~~~~~~~~~~~ include/linux/pageblock-flags.h:55:38: warning: left shift count is negative [-Wshift-count-negative] 55 | #define pageblock_nr_pages (1UL << pageblock_order) | ^~ include/linux/minmax.h:28:40: note: in definition of macro '__cmp' 28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y)) | ^ include/linux/minmax.h:74:25: note: in expansion of macro '__careful_cmp' 74 | #define max(x, y) __careful_cmp(x, y, >) | ^~~~~~~~~~~~~ mm/compaction.c:1360:21: note: in expansion of macro 'max' 1360 | start_pfn = max(pageblock_start_pfn(pfn), cc->zone->zone_start_pfn); | ^~~ -- In file included from include/linux/pgtable.h:6, from include/linux/mm.h:29, from mm/huge_memory.c:8: include/linux/swapops.h: In function 'swp_entry_to_pmd': arch/loongarch/include/asm/pgtable.h:277:34: warning: missing braces around initializer [-Wmissing-braces] 277 | #define __swp_entry_to_pmd(x) ((pmd_t) { (x).val | _PAGE_HUGE }) | ^ include/linux/swapops.h:519:16: note: in expansion of macro '__swp_entry_to_pmd' 519 | return __swp_entry_to_pmd(arch_entry); | ^~~~~~~~~~~~~~~~~~ In file included from <command-line>: mm/huge_memory.c: In function 'hugepage_init': >> include/linux/compiler_types.h:397:45: error: call to '__compiletime_assert_311' declared with attribute error: BUILD_BUG_ON failed: ((16 + (16 - 3))-16) > -1 397 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^ include/linux/compiler_types.h:378:25: note: in definition of macro '__compiletime_assert' 378 | prefix ## suffix(); \ | ^~~~~~ include/linux/compiler_types.h:397:9: note: in expansion of macro '_compiletime_assert' 397 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) | ^~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG' 50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition) | ^~~~~~~~~~~~~~~~ include/linux/bug.h:24:25: note: in expansion of macro 'BUILD_BUG_ON' 24 | BUILD_BUG_ON(cond); \ | ^~~~~~~~~~~~ mm/huge_memory.c:470:9: note: in expansion of macro 'MAYBE_BUILD_BUG_ON' 470 | MAYBE_BUILD_BUG_ON(HPAGE_PMD_ORDER > MAX_ORDER); | ^~~~~~~~~~~~~~~~~~ vim +/__compiletime_assert_311 +397 include/linux/compiler_types.h eb5c2d4b45e3d2 Will Deacon 2020-07-21 383 eb5c2d4b45e3d2 Will Deacon 2020-07-21 384 #define _compiletime_assert(condition, msg, prefix, suffix) \ eb5c2d4b45e3d2 Will Deacon 2020-07-21 385 __compiletime_assert(condition, msg, prefix, suffix) eb5c2d4b45e3d2 Will Deacon 2020-07-21 386 eb5c2d4b45e3d2 Will Deacon 2020-07-21 387 /** eb5c2d4b45e3d2 Will Deacon 2020-07-21 388 * compiletime_assert - break build and emit msg if condition is false eb5c2d4b45e3d2 Will Deacon 2020-07-21 389 * @condition: a compile-time constant condition to check eb5c2d4b45e3d2 Will Deacon 2020-07-21 390 * @msg: a message to emit if condition is false eb5c2d4b45e3d2 Will Deacon 2020-07-21 391 * eb5c2d4b45e3d2 Will Deacon 2020-07-21 392 * In tradition of POSIX assert, this macro will break the build if the eb5c2d4b45e3d2 Will Deacon 2020-07-21 393 * supplied condition is *false*, emitting the supplied error message if the eb5c2d4b45e3d2 Will Deacon 2020-07-21 394 * compiler has support to do so. eb5c2d4b45e3d2 Will Deacon 2020-07-21 395 */ eb5c2d4b45e3d2 Will Deacon 2020-07-21 396 #define compiletime_assert(condition, msg) \ eb5c2d4b45e3d2 Will Deacon 2020-07-21 @397 _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) eb5c2d4b45e3d2 Will Deacon 2020-07-21 398 :::::: The code at line 397 was first introduced by commit :::::: eb5c2d4b45e3d2d5d052ea6b8f1463976b1020d5 compiler.h: Move compiletime_assert() macros into compiler_types.h :::::: TO: Will Deacon <will@xxxxxxxxxx> :::::: CC: Will Deacon <will@xxxxxxxxxx> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests