On 8/25/23 12:39 PM, kernel test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next > head: b9bbbf4979073d5536b7650decd37fcb901e6556 > commit: 4d15721177d539d743fcf31d7bb376fb3b81aeb6 [84/128] powerpc/mm: Cleanup > memory block size probing > config: powerpc64-randconfig-r005-20230825 > (https://download.01.org/0day-ci/archive/20230825/202308251532.k9ppwead-...@intel.com/config) > compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git > 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a) > reproduce: > (https://download.01.org/0day-ci/archive/20230825/202308251532.k9ppwead-...@intel.com/reproduce) > > If you fix the issue in a separate patch/commit (i.e. not just a new version > of > the same patch/commit), kindly add following tags > | Reported-by: kernel test robot <l...@intel.com> > | Closes: > https://lore.kernel.org/oe-kbuild-all/202308251532.k9ppwead-...@intel.com/ > > All errors (new ones prefixed by >>): > >>> arch/powerpc/mm/init_64.c:477:38: error: use of undeclared identifier >>> 'SECTION_SIZE_BITS' > 477 | unsigned long section_size = 1UL << SECTION_SIZE_BITS; > | ^ > arch/powerpc/mm/init_64.c:510:18: error: use of undeclared identifier > 'SECTION_SIZE_BITS' > 510 | *block_size = MIN_MEMORY_BLOCK_SIZE; > | ^ > include/linux/memory.h:23:43: note: expanded from macro > 'MIN_MEMORY_BLOCK_SIZE' > 23 | #define MIN_MEMORY_BLOCK_SIZE (1UL << SECTION_SIZE_BITS) > | ^ > 2 errors generated. > > > vim +/SECTION_SIZE_BITS +477 arch/powerpc/mm/init_64.c > > 474 > 475 static void update_memory_block_size(unsigned long *block_size, > unsigned long mem_size) > 476 { > > 477 unsigned long section_size = 1UL << SECTION_SIZE_BITS; > 478 > 479 for (; *block_size > section_size; *block_size >>= 2) { > 480 > 481 if ((mem_size & *block_size) == 0) > 482 break; > 483 } > 484 } > 485 >
Not a nice fix: modified arch/powerpc/mm/init_64.c @@ -472,11 +472,17 @@ static int __init dt_scan_mmu_pid_width(unsigned long node, return 1; } +#ifndef CONFIG_MEMORY_HOTPLUG +#define MEMORY_BLOCK_SIZE SZ_16M +#else +#define MEMORY_BLOCK_SIZE MIN_MEMORY_BLOCK_SIZE +#endif + static void update_memory_block_size(unsigned long *block_size, unsigned long mem_size) { - unsigned long section_size = 1UL << SECTION_SIZE_BITS; + unsigned long min_memory_block_size = MEMORY_BLOCK_SIZE; - for (; *block_size > section_size; *block_size >>= 2) { + for (; *block_size > min_memory_block_size; *block_size >>= 2) { if ((mem_size & *block_size) == 0) break; @@ -507,7 +513,7 @@ static int __init probe_memory_block_size(unsigned long node, const char *uname, /* * Nothing in the device tree */ - *block_size = MIN_MEMORY_BLOCK_SIZE; + *block_size = MEMORY_BLOCK_SIZE; else *block_size = of_read_number(prop, dt_root_size_cells); /*