tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 66c198deda3725c57939c6cdaf2c9f5375cd79ad commit: 38c4fffbad3cbfc55e9e69d5e304c82baced199a [11895/11991] mm: check the return value of lookup_page_ext for all call sites config: i386-randconfig-h1-05241552 (attached as .config) compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430 reproduce: git checkout 38c4fffbad3cbfc55e9e69d5e304c82baced199a # save the attached .config to linux build tree make ARCH=i386 All error/warnings (new ones prefixed by >>): In file included from mm/migrate.c:40:0: include/linux/page_idle.h: In function 'page_is_young': >> include/linux/page_idle.h:139:0: error: unterminated argument list invoking macro "if" #endif /* _LINUX_MM_PAGE_IDLE_H */ In file included from mm/migrate.c:41:0: >> include/linux/page_owner.h:7:1: error: expected '(' before 'extern' extern struct static_key_false page_owner_inited; ^~~~~~ >> include/linux/page_owner.h:8:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] extern struct page_ext_operations page_owner_ops; ^~~~~~ >> include/linux/page_owner.h:18:20: error: invalid storage class for function 'reset_page_owner' static inline void reset_page_owner(struct page *page, unsigned int order) ^~~~~~~~~~~~~~~~ In file included from include/asm-generic/bug.h:4:0, from arch/x86/include/asm/bug.h:35, from include/linux/bug.h:4, from include/linux/mmdebug.h:4, from include/linux/mm.h:8, from include/linux/migrate.h:4, from mm/migrate.c:15: include/linux/page_owner.h: In function 'reset_page_owner': >> include/linux/page_owner.h:20:30: error: 'page_owner_inited' undeclared (first use in this function) if (static_branch_unlikely(&page_owner_inited)) ^ include/linux/compiler.h:151:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ >> include/linux/page_owner.h:20:2: note: in expansion of macro 'if' if (static_branch_unlikely(&page_owner_inited)) ^~ include/linux/compiler.h:149:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ >> include/linux/jump_label.h:347:2: note: in expansion of macro 'if' if (__builtin_types_compatible_p(typeof(*x), struct static_key_true)) \ ^~ >> include/linux/page_owner.h:20:6: note: in expansion of macro 'static_branch_unlikely' if (static_branch_unlikely(&page_owner_inited)) ^~~~~~~~~~~~~~~~~~~~~~ include/linux/page_owner.h:20:30: note: each undeclared identifier is reported only once for each function it appears in if (static_branch_unlikely(&page_owner_inited)) ^ include/linux/compiler.h:151:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ >> include/linux/page_owner.h:20:2: note: in expansion of macro 'if' if (static_branch_unlikely(&page_owner_inited)) ^~ include/linux/compiler.h:149:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ >> include/linux/jump_label.h:347:2: note: in expansion of macro 'if' if (__builtin_types_compatible_p(typeof(*x), struct static_key_true)) \ ^~ >> include/linux/page_owner.h:20:6: note: in expansion of macro 'static_branch_unlikely' if (static_branch_unlikely(&page_owner_inited)) ^~~~~~~~~~~~~~~~~~~~~~ In file included from mm/migrate.c:41:0: include/linux/page_owner.h: In function 'page_is_young': >> include/linux/page_owner.h:24:20: error: invalid storage class for function 'set_page_owner' static inline void set_page_owner(struct page *page, ^~~~~~~~~~~~~~ In file included from include/asm-generic/bug.h:4:0, from arch/x86/include/asm/bug.h:35, from include/linux/bug.h:4, from include/linux/mmdebug.h:4, from include/linux/mm.h:8, from include/linux/migrate.h:4, from mm/migrate.c:15: include/linux/page_owner.h: In function 'set_page_owner': include/linux/page_owner.h:27:30: error: 'page_owner_inited' undeclared (first use in this function) if (static_branch_unlikely(&page_owner_inited)) ^ include/linux/compiler.h:151:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ include/linux/page_owner.h:27:2: note: in expansion of macro 'if' if (static_branch_unlikely(&page_owner_inited)) ^~ include/linux/compiler.h:149:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ >> include/linux/jump_label.h:347:2: note: in expansion of macro 'if' if (__builtin_types_compatible_p(typeof(*x), struct static_key_true)) \ ^~ include/linux/page_owner.h:27:6: note: in expansion of macro 'static_branch_unlikely' if (static_branch_unlikely(&page_owner_inited)) ^~~~~~~~~~~~~~~~~~~~~~ In file included from mm/migrate.c:41:0: include/linux/page_owner.h: In function 'page_is_young': >> include/linux/page_owner.h:31:21: error: invalid storage class for function 'get_page_owner_gfp' static inline gfp_t get_page_owner_gfp(struct page *page) ^~~~~~~~~~~~~~~~~~ In file included from include/asm-generic/bug.h:4:0, from arch/x86/include/asm/bug.h:35, from include/linux/bug.h:4, from include/linux/mmdebug.h:4, from include/linux/mm.h:8, from include/linux/migrate.h:4, from mm/migrate.c:15: include/linux/page_owner.h: In function 'get_page_owner_gfp': include/linux/page_owner.h:33:30: error: 'page_owner_inited' undeclared (first use in this function) if (static_branch_unlikely(&page_owner_inited)) ^ include/linux/compiler.h:151:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ include/linux/page_owner.h:33:2: note: in expansion of macro 'if' if (static_branch_unlikely(&page_owner_inited)) ^~ include/linux/compiler.h:149:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ >> include/linux/jump_label.h:347:2: note: in expansion of macro 'if' if (__builtin_types_compatible_p(typeof(*x), struct static_key_true)) \ ^~ include/linux/page_owner.h:33:6: note: in expansion of macro 'static_branch_unlikely' if (static_branch_unlikely(&page_owner_inited)) ^~~~~~~~~~~~~~~~~~~~~~ In file included from mm/migrate.c:41:0: include/linux/page_owner.h: In function 'page_is_young': >> include/linux/page_owner.h:38:20: error: invalid storage class for function 'copy_page_owner' static inline void copy_page_owner(struct page *oldpage, struct page *newpage) ^~~~~~~~~~~~~~~ In file included from include/asm-generic/bug.h:4:0, from arch/x86/include/asm/bug.h:35, from include/linux/bug.h:4, from include/linux/mmdebug.h:4, from include/linux/mm.h:8, from include/linux/migrate.h:4, from mm/migrate.c:15: include/linux/page_owner.h: In function 'copy_page_owner': include/linux/page_owner.h:40:30: error: 'page_owner_inited' undeclared (first use in this function) if (static_branch_unlikely(&page_owner_inited)) ^ include/linux/compiler.h:151:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ include/linux/page_owner.h:40:2: note: in expansion of macro 'if' if (static_branch_unlikely(&page_owner_inited)) ^~ include/linux/compiler.h:149:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ >> include/linux/jump_label.h:347:2: note: in expansion of macro 'if' if (__builtin_types_compatible_p(typeof(*x), struct static_key_true)) \ ^~ include/linux/page_owner.h:40:6: note: in expansion of macro 'static_branch_unlikely' if (static_branch_unlikely(&page_owner_inited)) ^~~~~~~~~~~~~~~~~~~~~~ In file included from mm/migrate.c:41:0: include/linux/page_owner.h: In function 'page_is_young': >> include/linux/page_owner.h:43:20: error: invalid storage class for function 'set_page_owner_migrate_reason' static inline void set_page_owner_migrate_reason(struct page *page, int reason) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/asm-generic/bug.h:4:0, from arch/x86/include/asm/bug.h:35, from include/linux/bug.h:4, from include/linux/mmdebug.h:4, from include/linux/mm.h:8, from include/linux/migrate.h:4, from mm/migrate.c:15: include/linux/page_owner.h: In function 'set_page_owner_migrate_reason': include/linux/page_owner.h:45:30: error: 'page_owner_inited' undeclared (first use in this function) if (static_branch_unlikely(&page_owner_inited)) ^ include/linux/compiler.h:151:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ include/linux/page_owner.h:45:2: note: in expansion of macro 'if' if (static_branch_unlikely(&page_owner_inited)) ^~ include/linux/compiler.h:149:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ >> include/linux/jump_label.h:347:2: note: in expansion of macro 'if' if (__builtin_types_compatible_p(typeof(*x), struct static_key_true)) \ ^~ include/linux/page_owner.h:45:6: note: in expansion of macro 'static_branch_unlikely' if (static_branch_unlikely(&page_owner_inited)) ^~~~~~~~~~~~~~~~~~~~~~ In file included from mm/migrate.c:41:0: include/linux/page_owner.h: In function 'page_is_young': >> include/linux/page_owner.h:48:20: error: invalid storage class for function 'dump_page_owner' static inline void dump_page_owner(struct page *page) ^~~~~~~~~~~~~~~ In file included from include/asm-generic/bug.h:4:0, from arch/x86/include/asm/bug.h:35, from include/linux/bug.h:4, from include/linux/mmdebug.h:4, from include/linux/mm.h:8, from include/linux/migrate.h:4, from mm/migrate.c:15: include/linux/page_owner.h: In function 'dump_page_owner': include/linux/page_owner.h:50:30: error: 'page_owner_inited' undeclared (first use in this function) if (static_branch_unlikely(&page_owner_inited)) ^ include/linux/compiler.h:151:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ include/linux/page_owner.h:50:2: note: in expansion of macro 'if' if (static_branch_unlikely(&page_owner_inited)) ^~ include/linux/compiler.h:149:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ -- In file included from mm/huge_memory.c:32:0: include/linux/page_idle.h: In function 'page_is_young': >> include/linux/page_idle.h:139:0: error: unterminated argument list invoking macro "if" #endif /* _LINUX_MM_PAGE_IDLE_H */ In file included from include/asm-generic/tlb.h:19:0, from arch/x86/include/asm/tlb.h:16, from mm/huge_memory.c:34: >> arch/x86/include/asm/pgalloc.h:8:1: error: expected '(' before 'static' static inline int __paravirt_pgd_alloc(struct mm_struct *mm) { return 0; } ^~~~~~ >> arch/x86/include/asm/pgalloc.h:33:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] extern pgd_t *pgd_alloc(struct mm_struct *); ^~~~~~ >> arch/x86/include/asm/pgalloc.h:42:20: error: invalid storage class for function 'pte_free_kernel' static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) ^~~~~~~~~~~~~~~ >> arch/x86/include/asm/pgalloc.h:48:20: error: invalid storage class for function 'pte_free' static inline void pte_free(struct mm_struct *mm, struct page *pte) ^~~~~~~~ >> arch/x86/include/asm/pgalloc.h:56:20: error: invalid storage class for function '__pte_free_tlb' static inline void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte, ^~~~~~~~~~~~~~ >> arch/x86/include/asm/pgalloc.h:62:20: error: invalid storage class for function 'pmd_populate_kernel' static inline void pmd_populate_kernel(struct mm_struct *mm, ^~~~~~~~~~~~~~~~~~~ >> arch/x86/include/asm/pgalloc.h:69:20: error: invalid storage class for function 'pmd_populate' static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, ^~~~~~~~~~~~ In file included from arch/x86/include/asm/tlb.h:16:0, from mm/huge_memory.c:34: >> include/asm-generic/tlb.h:124:20: error: invalid storage class for function 'tlb_remove_page' static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page) ^~~~~~~~~~~~~~~ >> include/asm-generic/tlb.h:130:20: error: invalid storage class for function '__tlb_adjust_range' static inline void __tlb_adjust_range(struct mmu_gather *tlb, ^~~~~~~~~~~~~~~~~~ >> include/asm-generic/tlb.h:137:20: error: invalid storage class for function '__tlb_reset_range' static inline void __tlb_reset_range(struct mmu_gather *tlb) ^~~~~~~~~~~~~~~~~ In file included from mm/huge_memory.c:36:0: >> mm/internal.h:53:29: error: invalid storage class for function 'ra_submit' static inline unsigned long ra_submit(struct file_ra_state *ra, ^~~~~~~~~ >> mm/internal.h:64:20: error: invalid storage class for function 'set_page_refcounted' static inline void set_page_refcounted(struct page *page) ^~~~~~~~~~~~~~~~~~~ >> mm/internal.h:131:1: error: invalid storage class for function '__find_buddy_index' __find_buddy_index(unsigned long page_idx, unsigned int order) ^~~~~~~~~~~~~~~~~~ >> mm/internal.h:139:28: error: invalid storage class for function 'pageblock_pfn_to_page' static inline struct page *pageblock_pfn_to_page(unsigned long start_pfn, ^~~~~~~~~~~~~~~~~~~~~ >> mm/internal.h:208:28: error: invalid storage class for function 'page_order' static inline unsigned int page_order(struct page *page) ^~~~~~~~~~ >> mm/internal.h:227:20: error: invalid storage class for function 'is_cow_mapping' static inline bool is_cow_mapping(vm_flags_t flags) ^~~~~~~~~~~~~~ >> mm/internal.h:239:20: error: invalid storage class for function 'is_exec_mapping' static inline bool is_exec_mapping(vm_flags_t flags) ^~~~~~~~~~~~~~~ >> mm/internal.h:250:20: error: invalid storage class for function 'is_stack_mapping' static inline bool is_stack_mapping(vm_flags_t flags) ^~~~~~~~~~~~~~~~ >> mm/internal.h:258:20: error: invalid storage class for function 'is_data_mapping' static inline bool is_data_mapping(vm_flags_t flags) ^~~~~~~~~~~~~~~ -- In file included from mm/page_ext.c:9:0: include/linux/page_idle.h: In function 'page_is_young': >> include/linux/page_idle.h:139:0: error: unterminated argument list invoking macro "if" #endif /* _LINUX_MM_PAGE_IDLE_H */ >> mm/page_ext.c:55:1: error: expected '(' before 'static' static struct page_ext_operations *page_ext_ops[] = { ^~~~~~ >> mm/page_ext.c:68:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] static unsigned long total_usage; ^~~~~~ >> mm/page_ext.c:70:20: error: invalid storage class for function 'invoke_need_callbacks' static bool __init invoke_need_callbacks(void) ^~~~~~~~~~~~~~~~~~~~~ In file included from include/asm-generic/bug.h:13:0, from arch/x86/include/asm/bug.h:35, from include/linux/bug.h:4, from include/linux/mmdebug.h:4, from include/linux/mm.h:8, from mm/page_ext.c:1: mm/page_ext.c: In function 'invoke_need_callbacks': >> mm/page_ext.c:73:27: error: 'page_ext_ops' undeclared (first use in this function) int entries = ARRAY_SIZE(page_ext_ops); ^ include/linux/kernel.h:54:33: note: in definition of macro 'ARRAY_SIZE' #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) ^~~ mm/page_ext.c:73:27: note: each undeclared identifier is reported only once for each function it appears in int entries = ARRAY_SIZE(page_ext_ops); ^ include/linux/kernel.h:54:33: note: in definition of macro 'ARRAY_SIZE' #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) ^~~ In file included from include/linux/mmdebug.h:4:0, from include/linux/mm.h:8, from mm/page_ext.c:1: include/linux/bug.h:34:45: error: bit-field '<anonymous>' width not an integer constant #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); })) ^ include/linux/compiler-gcc.h:64:28: note: in expansion of macro 'BUILD_BUG_ON_ZERO' #define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0])) ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:54:59: note: in expansion of macro '__must_be_array' #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) ^~~~~~~~~~~~~~~ >> mm/page_ext.c:73:16: note: in expansion of macro 'ARRAY_SIZE' int entries = ARRAY_SIZE(page_ext_ops); ^~~~~~~~~~ mm/page_ext.c: In function 'page_is_young': >> mm/page_ext.c:83:20: error: invalid storage class for function 'invoke_init_callbacks' static void __init invoke_init_callbacks(void) ^~~~~~~~~~~~~~~~~~~~~ In file included from include/asm-generic/bug.h:13:0, from arch/x86/include/asm/bug.h:35, from include/linux/bug.h:4, from include/linux/mmdebug.h:4, from include/linux/mm.h:8, from mm/page_ext.c:1: mm/page_ext.c: In function 'invoke_init_callbacks': mm/page_ext.c:86:27: error: 'page_ext_ops' undeclared (first use in this function) int entries = ARRAY_SIZE(page_ext_ops); ^ include/linux/kernel.h:54:33: note: in definition of macro 'ARRAY_SIZE' #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) ^~~ In file included from include/linux/mmdebug.h:4:0, from include/linux/mm.h:8, from mm/page_ext.c:1: include/linux/bug.h:34:45: error: bit-field '<anonymous>' width not an integer constant #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); })) ^ include/linux/compiler-gcc.h:64:28: note: in expansion of macro 'BUILD_BUG_ON_ZERO' #define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0])) ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:54:59: note: in expansion of macro '__must_be_array' #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) ^~~~~~~~~~~~~~~ mm/page_ext.c:86:16: note: in expansion of macro 'ARRAY_SIZE' int entries = ARRAY_SIZE(page_ext_ops); ^~~~~~~~~~ mm/page_ext.c: In function 'page_is_young': >> mm/page_ext.c:127:19: error: invalid storage class for function 'alloc_node_page_ext' static int __init alloc_node_page_ext(int nid) ^~~~~~~~~~~~~~~~~~~ >> mm/page_ext.c:178:1: error: expected declaration or statement at end of input } ^ >> mm/page_ext.c:178:1: warning: no return statement in function returning non-void [-Wreturn-type] At top level: mm/page_ext.c:158:13: warning: 'page_ext_init_flatmem' defined but not used [-Wunused-function] void __init page_ext_init_flatmem(void) ^~~~~~~~~~~~~~~~~~~~~ mm/page_ext.c:102:18: warning: 'lookup_page_ext' defined but not used [-Wunused-function] struct page_ext *lookup_page_ext(struct page *page) ^~~~~~~~~~~~~~~ mm/page_ext.c:97:16: warning: 'pgdat_page_ext_init' defined but not used [-Wunused-function] void __meminit pgdat_page_ext_init(struct pglist_data *pgdat) ^~~~~~~~~~~~~~~~~~~ .. vim +/if +139 include/linux/page_idle.h 33c3fc71 Vladimir Davydov 2015-09-09 133 static inline void clear_page_idle(struct page *page) 33c3fc71 Vladimir Davydov 2015-09-09 134 { 33c3fc71 Vladimir Davydov 2015-09-09 135 } 33c3fc71 Vladimir Davydov 2015-09-09 136 33c3fc71 Vladimir Davydov 2015-09-09 137 #endif /* CONFIG_IDLE_PAGE_TRACKING */ 33c3fc71 Vladimir Davydov 2015-09-09 138 33c3fc71 Vladimir Davydov 2015-09-09 @139 #endif /* _LINUX_MM_PAGE_IDLE_H */ :::::: The code at line 139 was first introduced by commit :::::: 33c3fc71c8cfa3cc3a98beaa901c069c177dc295 mm: introduce idle page tracking :::::: TO: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx> :::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: Binary data