Hi Matthew, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.16-rc2] [cannot apply to mmotm/master next-20180223] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Matthew-Wilcox/mm-Report-bad-PTEs-in-lookup_swap_cache/20180225-080318 config: sparc64-allmodconfig (attached as .config) compiler: sparc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=sparc64 All errors (new ones prefixed by >>): mm/swap_state.c: In function 'lookup_swap_cache': >> mm/swap_state.c:340:4: error: implicit declaration of function 'pte_ERROR'; did you mean 'pgd_ERROR'? [-Werror=implicit-function-declaration] pte_ERROR(vmf->orig_pte); ^~~~~~~~~ pgd_ERROR cc1: some warnings being treated as errors vim +340 mm/swap_state.c 324 325 /* 326 * Lookup a swap entry in the swap cache. A found page will be returned 327 * unlocked and with its refcount incremented - we rely on the kernel 328 * lock getting page table operations atomic even if we drop the page 329 * lock before returning. 330 */ 331 struct page *lookup_swap_cache(swp_entry_t entry, bool vma_ra, 332 struct vm_fault *vmf) 333 { 334 struct page *page; 335 int readahead; 336 struct address_space *swapper_space = swap_address_space(entry); 337 338 if (!swapper_space) { 339 if (vmf) > 340 pte_ERROR(vmf->orig_pte); 341 else 342 pr_err("Bad swp_entry: %lx\n", entry.val); 343 return NULL; 344 } 345 346 page = find_get_page(swapper_space, swp_offset(entry)); 347 348 INC_CACHE_INFO(find_total); 349 if (page) { 350 INC_CACHE_INFO(find_success); 351 if (unlikely(PageTransCompound(page))) 352 return page; 353 readahead = TestClearPageReadahead(page); 354 if (vma_ra) { 355 unsigned long ra_info = GET_SWAP_RA_VAL(vmf->vma); 356 int win = SWAP_RA_WIN(ra_info); 357 int hits = SWAP_RA_HITS(ra_info); 358 359 if (readahead) 360 hits = min_t(int, hits + 1, SWAP_RA_HITS_MAX); 361 atomic_long_set(&vmf->vma->swap_readahead_info, 362 SWAP_RA_VAL(vmf->address, win, hits)); 363 } 364 if (readahead) { 365 count_vm_event(SWAP_RA_HIT); 366 if (!vma_ra) 367 atomic_inc(&swapin_readahead_hits); 368 } 369 } 370 return page; 371 } 372 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip