Hi Mel, [auto build test ERROR on mmotm/master] [also build test ERROR on v4.13-rc2 next-20170724] [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/Mel-Gorman/mm-Always-flush-VMA-ranges-affected-by-zap_page_range/20170725-102436 base: git://git.cmpxchg.org/linux-mmotm.git master config: ia64-allyesconfig (attached as .config) compiler: ia64-linux-gcc (GCC) 6.2.0 reproduce: wget https://raw.githubusercontent.com/01org/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=ia64 All errors (new ones prefixed by >>): mm/memory.c: In function 'zap_page_range': >> mm/memory.c:1497:3: error: implicit declaration of function '__tlb_adjust_range' [-Werror=implicit-function-declaration] __tlb_adjust_range(&tlb, start, end); ^~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/__tlb_adjust_range +1497 mm/memory.c 1466 1467 /** 1468 * zap_page_range - remove user pages in a given range 1469 * @vma: vm_area_struct holding the applicable pages 1470 * @start: starting address of pages to zap 1471 * @size: number of bytes to zap 1472 * 1473 * Caller must protect the VMA list 1474 */ 1475 void zap_page_range(struct vm_area_struct *vma, unsigned long start, 1476 unsigned long size) 1477 { 1478 struct mm_struct *mm = vma->vm_mm; 1479 struct mmu_gather tlb; 1480 unsigned long end = start + size; 1481 1482 lru_add_drain(); 1483 tlb_gather_mmu(&tlb, mm, start, end); 1484 update_hiwater_rss(mm); 1485 mmu_notifier_invalidate_range_start(mm, start, end); 1486 for ( ; vma && vma->vm_start < end; vma = vma->vm_next) { 1487 unmap_single_vma(&tlb, vma, start, end, NULL); 1488 1489 /* 1490 * zap_page_range does not specify whether mmap_sem should be 1491 * held for read or write. That allows parallel zap_page_range 1492 * operations to unmap a PTE and defer a flush meaning that 1493 * this call observes pte_none and fails to flush the TLB. 1494 * Rather than adding a complex API, ensure that no stale 1495 * TLB entries exist when this call returns. 1496 */ > 1497 __tlb_adjust_range(&tlb, start, end); 1498 } 1499 1500 mmu_notifier_invalidate_range_end(mm, start, end); 1501 tlb_finish_mmu(&tlb, start, end); 1502 } 1503 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation