tree: https://github.com/ammarfaizi2/linux-block akpm/mm/mm-unstable head: 1dee68cfead9a3a85e244a274b4e85620abd5331 commit: 69b496f03bb46c7ce743aff0d976c078d753d6d6 [480/484] mm/hwpoison: introduce per-memory_block hwpoison counter config: x86_64-randconfig-a015 (https://download.01.org/0day-ci/archive/20220923/202209231134.tnhKHRfg-lkp@xxxxxxxxx/config) compiler: gcc-11 (Debian 11.3.0-5) 11.3.0 reproduce (this is a W=1 build): # https://github.com/ammarfaizi2/linux-block/commit/69b496f03bb46c7ce743aff0d976c078d753d6d6 git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block git fetch --no-tags ammarfaizi2-block akpm/mm/mm-unstable git checkout 69b496f03bb46c7ce743aff0d976c078d753d6d6 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): drivers/base/memory.c: In function 'memory_block_online': >> drivers/base/memory.c:186:34: error: 'struct memory_block' has no member named 'nr_hwpoison' 186 | if (atomic_long_read(&mem->nr_hwpoison)) | ^~ drivers/base/memory.c: In function 'remove_memory_block_devices': drivers/base/memory.c:870:61: error: 'struct memory_block' has no member named 'nr_hwpoison' 870 | clear_hwpoisoned_pages(atomic_long_read(&mem->nr_hwpoison)); | ^~ vim +186 drivers/base/memory.c 177 178 static int memory_block_online(struct memory_block *mem) 179 { 180 unsigned long start_pfn = section_nr_to_pfn(mem->start_section_nr); 181 unsigned long nr_pages = PAGES_PER_SECTION * sections_per_block; 182 unsigned long nr_vmemmap_pages = mem->nr_vmemmap_pages; 183 struct zone *zone; 184 int ret; 185 > 186 if (atomic_long_read(&mem->nr_hwpoison)) 187 return -EHWPOISON; 188 189 zone = zone_for_pfn_range(mem->online_type, mem->nid, mem->group, 190 start_pfn, nr_pages); 191 192 /* 193 * Although vmemmap pages have a different lifecycle than the pages 194 * they describe (they remain until the memory is unplugged), doing 195 * their initialization and accounting at memory onlining/offlining 196 * stage helps to keep accounting easier to follow - e.g vmemmaps 197 * belong to the same zone as the memory they backed. 198 */ 199 if (nr_vmemmap_pages) { 200 ret = mhp_init_memmap_on_memory(start_pfn, nr_vmemmap_pages, zone); 201 if (ret) 202 return ret; 203 } 204 205 ret = online_pages(start_pfn + nr_vmemmap_pages, 206 nr_pages - nr_vmemmap_pages, zone, mem->group); 207 if (ret) { 208 if (nr_vmemmap_pages) 209 mhp_deinit_memmap_on_memory(start_pfn, nr_vmemmap_pages); 210 return ret; 211 } 212 213 /* 214 * Account once onlining succeeded. If the zone was unpopulated, it is 215 * now already properly populated. 216 */ 217 if (nr_vmemmap_pages) 218 adjust_present_page_count(pfn_to_page(start_pfn), mem->group, 219 nr_vmemmap_pages); 220 221 mem->zone = zone; 222 return ret; 223 } 224 -- 0-DAY CI Kernel Test Service https://01.org/lkp