Hi Matthew, I love your patch! Yet something to improve: [auto build test ERROR on mmotm/master] [also build test ERROR on v4.15-rc2 next-20171207] [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-Add-unmap_mapping_pages/20171208-072634 base: git://git.cmpxchg.org/linux-mmotm.git master config: i386-tinyconfig (attached as .config) compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025 reproduce: # save the attached .config to linux build tree make ARCH=i386 All error/warnings (new ones prefixed by >>): In file included from include/linux/memcontrol.h:29:0, from include/linux/swap.h:9, from include/linux/suspend.h:5, from arch/x86/kernel/asm-offsets.c:13: include/linux/mm.h: In function 'unmap_shared_mapping_range': >> include/linux/mm.h:1328:2: error: implicit declaration of function 'unmap_mapping_range'; did you mean 'unmap_shared_mapping_range'? [-Werror=implicit-function-declaration] unmap_mapping_range(mapping, holebegin, holelen, 0); ^~~~~~~~~~~~~~~~~~~ unmap_shared_mapping_range include/linux/mm.h: At top level: >> include/linux/mm.h:1347:6: warning: conflicting types for 'unmap_mapping_range' void unmap_mapping_range(struct address_space *mapping, ^~~~~~~~~~~~~~~~~~~ include/linux/mm.h:1328:2: note: previous implicit declaration of 'unmap_mapping_range' was here unmap_mapping_range(mapping, holebegin, holelen, 0); ^~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors make[2]: *** [arch/x86/kernel/asm-offsets.s] Error 1 make[2]: Target '__build' not remade because of errors. make[1]: *** [prepare0] Error 2 make[1]: Target 'prepare' not remade because of errors. make: *** [sub-make] Error 2 vim +1328 include/linux/mm.h e6473092bd Matt Mackall 2008-02-04 1307 2165009bdf Dave Hansen 2008-06-12 1308 int walk_page_range(unsigned long addr, unsigned long end, 2165009bdf Dave Hansen 2008-06-12 1309 struct mm_walk *walk); 900fc5f197 Naoya Horiguchi 2015-02-11 1310 int walk_page_vma(struct vm_area_struct *vma, struct mm_walk *walk); 42b7772812 Jan Beulich 2008-07-23 1311 void free_pgd_range(struct mmu_gather *tlb, unsigned long addr, 3bf5ee9564 Hugh Dickins 2005-04-19 1312 unsigned long end, unsigned long floor, unsigned long ceiling); ^1da177e4c Linus Torvalds 2005-04-16 1313 int copy_page_range(struct mm_struct *dst, struct mm_struct *src, ^1da177e4c Linus Torvalds 2005-04-16 1314 struct vm_area_struct *vma); 0979639595 Ross Zwisler 2017-01-10 1315 int follow_pte_pmd(struct mm_struct *mm, unsigned long address, a4d1a88525 J�r�me Glisse 2017-08-31 1316 unsigned long *start, unsigned long *end, 0979639595 Ross Zwisler 2017-01-10 1317 pte_t **ptepp, pmd_t **pmdpp, spinlock_t **ptlp); 3b6748e2dd Johannes Weiner 2009-06-16 1318 int follow_pfn(struct vm_area_struct *vma, unsigned long address, 3b6748e2dd Johannes Weiner 2009-06-16 1319 unsigned long *pfn); d87fe6607c venkatesh.pallipadi@intel.com 2008-12-19 1320 int follow_phys(struct vm_area_struct *vma, unsigned long address, d87fe6607c venkatesh.pallipadi@intel.com 2008-12-19 1321 unsigned int flags, unsigned long *prot, resource_size_t *phys); 28b2ee20c7 Rik van Riel 2008-07-23 1322 int generic_access_phys(struct vm_area_struct *vma, unsigned long addr, 28b2ee20c7 Rik van Riel 2008-07-23 1323 void *buf, int len, int write); ^1da177e4c Linus Torvalds 2005-04-16 1324 ^1da177e4c Linus Torvalds 2005-04-16 1325 static inline void unmap_shared_mapping_range(struct address_space *mapping, ^1da177e4c Linus Torvalds 2005-04-16 1326 loff_t const holebegin, loff_t const holelen) ^1da177e4c Linus Torvalds 2005-04-16 1327 { ^1da177e4c Linus Torvalds 2005-04-16 @1328 unmap_mapping_range(mapping, holebegin, holelen, 0); ^1da177e4c Linus Torvalds 2005-04-16 1329 } ^1da177e4c Linus Torvalds 2005-04-16 1330 7caef26767 Kirill A. Shutemov 2013-09-12 1331 extern void truncate_pagecache(struct inode *inode, loff_t new); 2c27c65ed0 Christoph Hellwig 2010-06-04 1332 extern void truncate_setsize(struct inode *inode, loff_t newsize); 90a8020278 Jan Kara 2014-10-01 1333 void pagecache_isize_extended(struct inode *inode, loff_t from, loff_t to); 623e3db9f9 Hugh Dickins 2012-03-28 1334 void truncate_pagecache_range(struct inode *inode, loff_t offset, loff_t end); 750b4987b0 Nick Piggin 2009-09-16 1335 int truncate_inode_page(struct address_space *mapping, struct page *page); 2571873621 Andi Kleen 2009-09-16 1336 int generic_error_remove_page(struct address_space *mapping, struct page *page); 83f786680a Wu Fengguang 2009-09-16 1337 int invalidate_inode_page(struct page *page); 83f786680a Wu Fengguang 2009-09-16 1338 7ee1dd3fee David Howells 2006-01-06 1339 #ifdef CONFIG_MMU dcddffd41d Kirill A. Shutemov 2016-07-26 1340 extern int handle_mm_fault(struct vm_area_struct *vma, unsigned long address, dcddffd41d Kirill A. Shutemov 2016-07-26 1341 unsigned int flags); 5c723ba5b7 Peter Zijlstra 2011-07-27 1342 extern int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, 4a9e1cda27 Dominik Dingel 2016-01-15 1343 unsigned long address, unsigned int fault_flags, 4a9e1cda27 Dominik Dingel 2016-01-15 1344 bool *unlocked); dcd7006c23 Matthew Wilcox 2017-12-05 1345 void unmap_mapping_pages(struct address_space *mapping, dcd7006c23 Matthew Wilcox 2017-12-05 1346 pgoff_t start, pgoff_t nr, bool even_cows); dcd7006c23 Matthew Wilcox 2017-12-05 @1347 void unmap_mapping_range(struct address_space *mapping, dcd7006c23 Matthew Wilcox 2017-12-05 1348 loff_t const holebegin, loff_t const holelen, int even_cows); 7ee1dd3fee David Howells 2006-01-06 1349 #else dcddffd41d Kirill A. Shutemov 2016-07-26 1350 static inline int handle_mm_fault(struct vm_area_struct *vma, dcddffd41d Kirill A. Shutemov 2016-07-26 1351 unsigned long address, unsigned int flags) 7ee1dd3fee David Howells 2006-01-06 1352 { 7ee1dd3fee David Howells 2006-01-06 1353 /* should never happen if there's no MMU */ 7ee1dd3fee David Howells 2006-01-06 1354 BUG(); 7ee1dd3fee David Howells 2006-01-06 1355 return VM_FAULT_SIGBUS; 7ee1dd3fee David Howells 2006-01-06 1356 } 5c723ba5b7 Peter Zijlstra 2011-07-27 1357 static inline int fixup_user_fault(struct task_struct *tsk, 5c723ba5b7 Peter Zijlstra 2011-07-27 1358 struct mm_struct *mm, unsigned long address, 4a9e1cda27 Dominik Dingel 2016-01-15 1359 unsigned int fault_flags, bool *unlocked) 5c723ba5b7 Peter Zijlstra 2011-07-27 1360 { 5c723ba5b7 Peter Zijlstra 2011-07-27 1361 /* should never happen if there's no MMU */ 5c723ba5b7 Peter Zijlstra 2011-07-27 1362 BUG(); 5c723ba5b7 Peter Zijlstra 2011-07-27 1363 return -EFAULT; 5c723ba5b7 Peter Zijlstra 2011-07-27 1364 } dcd7006c23 Matthew Wilcox 2017-12-05 1365 static inline void unmap_mapping_pages(struct address_space *mapping, dcd7006c23 Matthew Wilcox 2017-12-05 1366 pgoff_t start, pgoff_t nr, bool even_cows) { } dcd7006c23 Matthew Wilcox 2017-12-05 1367 static inline void unmap_mapping_range(struct address_space *mapping, dcd7006c23 Matthew Wilcox 2017-12-05 1368 loff_t const holebegin, loff_t const holelen, int even_cows) { } 7ee1dd3fee David Howells 2006-01-06 1369 #endif f33ea7f404 Nick Piggin 2005-08-03 1370 :::::: The code at line 1328 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2 :::::: TO: Linus Torvalds :::::: CC: Linus Torvalds --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation