Hi John, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v4.18-rc3] [cannot apply to next-20180629] [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/john-hubbard-gmail-com/mm-fs-gup-don-t-unmap-or-drop-filesystem-buffers/20180702-090125 config: x86_64-randconfig-x010-201826 (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): In file included from arch/x86/include/asm/atomic.h:5:0, from include/linux/atomic.h:5, from include/linux/page_counter.h:5, from mm/memcontrol.c:34: mm/memcontrol.c: In function 'unlock_page_lru': mm/memcontrol.c:2087:32: error: 'page_tail' undeclared (first use in this function); did you mean 'page_pool'? VM_BUG_ON_PAGE(PageDmaPinned(page_tail), page); ^ include/linux/compiler.h:58:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ >> include/linux/mmdebug.h:21:3: note: in expansion of macro 'if' if (unlikely(cond)) { \ ^~ include/linux/compiler.h:48:24: note: in expansion of macro '__branch_check__' # define unlikely(x) (__branch_check__(x, 0, __builtin_constant_p(x))) ^~~~~~~~~~~~~~~~ >> include/linux/mmdebug.h:21:7: note: in expansion of macro 'unlikely' if (unlikely(cond)) { \ ^~~~~~~~ mm/memcontrol.c:2087:3: note: in expansion of macro 'VM_BUG_ON_PAGE' VM_BUG_ON_PAGE(PageDmaPinned(page_tail), page); ^~~~~~~~~~~~~~ mm/memcontrol.c:2087:32: note: each undeclared identifier is reported only once for each function it appears in VM_BUG_ON_PAGE(PageDmaPinned(page_tail), page); ^ include/linux/compiler.h:58:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ >> include/linux/mmdebug.h:21:3: note: in expansion of macro 'if' if (unlikely(cond)) { \ ^~ include/linux/compiler.h:48:24: note: in expansion of macro '__branch_check__' # define unlikely(x) (__branch_check__(x, 0, __builtin_constant_p(x))) ^~~~~~~~~~~~~~~~ >> include/linux/mmdebug.h:21:7: note: in expansion of macro 'unlikely' if (unlikely(cond)) { \ ^~~~~~~~ mm/memcontrol.c:2087:3: note: in expansion of macro 'VM_BUG_ON_PAGE' VM_BUG_ON_PAGE(PageDmaPinned(page_tail), page); ^~~~~~~~~~~~~~ vim +/if +21 include/linux/mmdebug.h 309381feae Sasha Levin 2014-01-23 16 59ea746337 Jiri Slaby 2008-06-12 17 #ifdef CONFIG_DEBUG_VM 59ea746337 Jiri Slaby 2008-06-12 18 #define VM_BUG_ON(cond) BUG_ON(cond) 309381feae Sasha Levin 2014-01-23 19 #define VM_BUG_ON_PAGE(cond, page) \ e4f674229c Dave Hansen 2014-06-04 20 do { \ e4f674229c Dave Hansen 2014-06-04 @21 if (unlikely(cond)) { \ e4f674229c Dave Hansen 2014-06-04 22 dump_page(page, "VM_BUG_ON_PAGE(" __stringify(cond)")");\ e4f674229c Dave Hansen 2014-06-04 23 BUG(); \ e4f674229c Dave Hansen 2014-06-04 24 } \ e4f674229c Dave Hansen 2014-06-04 25 } while (0) fa3759ccd5 Sasha Levin 2014-10-09 26 #define VM_BUG_ON_VMA(cond, vma) \ fa3759ccd5 Sasha Levin 2014-10-09 27 do { \ fa3759ccd5 Sasha Levin 2014-10-09 28 if (unlikely(cond)) { \ fa3759ccd5 Sasha Levin 2014-10-09 29 dump_vma(vma); \ fa3759ccd5 Sasha Levin 2014-10-09 30 BUG(); \ fa3759ccd5 Sasha Levin 2014-10-09 31 } \ fa3759ccd5 Sasha Levin 2014-10-09 32 } while (0) 31c9afa6db Sasha Levin 2014-10-09 33 #define VM_BUG_ON_MM(cond, mm) \ 31c9afa6db Sasha Levin 2014-10-09 34 do { \ 31c9afa6db Sasha Levin 2014-10-09 35 if (unlikely(cond)) { \ 31c9afa6db Sasha Levin 2014-10-09 36 dump_mm(mm); \ 31c9afa6db Sasha Levin 2014-10-09 37 BUG(); \ 31c9afa6db Sasha Levin 2014-10-09 38 } \ 31c9afa6db Sasha Levin 2014-10-09 39 } while (0) 91241681c6 Michal Hocko 2018-04-05 40 #define VM_WARN_ON(cond) (void)WARN_ON(cond) 91241681c6 Michal Hocko 2018-04-05 41 #define VM_WARN_ON_ONCE(cond) (void)WARN_ON_ONCE(cond) 91241681c6 Michal Hocko 2018-04-05 42 #define VM_WARN_ONCE(cond, format...) (void)WARN_ONCE(cond, format) 91241681c6 Michal Hocko 2018-04-05 43 #define VM_WARN(cond, format...) (void)WARN(cond, format) 59ea746337 Jiri Slaby 2008-06-12 44 #else 02602a18c3 Konstantin Khlebnikov 2012-05-29 45 #define VM_BUG_ON(cond) BUILD_BUG_ON_INVALID(cond) 309381feae Sasha Levin 2014-01-23 46 #define VM_BUG_ON_PAGE(cond, page) VM_BUG_ON(cond) fa3759ccd5 Sasha Levin 2014-10-09 47 #define VM_BUG_ON_VMA(cond, vma) VM_BUG_ON(cond) 31c9afa6db Sasha Levin 2014-10-09 48 #define VM_BUG_ON_MM(cond, mm) VM_BUG_ON(cond) 02a8efeda8 Andrew Morton 2014-06-04 49 #define VM_WARN_ON(cond) BUILD_BUG_ON_INVALID(cond) 02a8efeda8 Andrew Morton 2014-06-04 50 #define VM_WARN_ON_ONCE(cond) BUILD_BUG_ON_INVALID(cond) ef6b571fb8 Andrew Morton 2014-08-06 51 #define VM_WARN_ONCE(cond, format...) BUILD_BUG_ON_INVALID(cond) a54f9aebaa Aneesh Kumar K.V 2016-07-26 52 #define VM_WARN(cond, format...) BUILD_BUG_ON_INVALID(cond) 59ea746337 Jiri Slaby 2008-06-12 53 #endif 59ea746337 Jiri Slaby 2008-06-12 54 :::::: The code at line 21 was first introduced by commit :::::: e4f674229ce63dac60be0c4ddfb5ef8d1225d30d mm: pass VM_BUG_ON() reason to dump_page() :::::: TO: Dave Hansen :::::: CC: Linus Torvalds --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation