Hi Vincenzo, I love your patch! Yet something to improve: [auto build test ERROR on arm/for-next] [also build test ERROR on soc/for-next kvmarm/next linus/master v5.12-rc6 next-20210408] [cannot apply to arm64/for-next/core xlnx/master] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Vincenzo-Frascino/arm64-mte-Move-MTE-TCF0-check-in-entry-common/20210409-182215 base: git://git.armlinux.org.uk/~rmk/linux-arm.git for-next config: arm64-allnoconfig (attached as .config) compiler: aarch64-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/59174442d4b85039bfec7ede4825ff2b5c0b4331 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Vincenzo-Frascino/arm64-mte-Move-MTE-TCF0-check-in-entry-common/20210409-182215 git checkout 59174442d4b85039bfec7ede4825ff2b5c0b4331 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All error/warnings (new ones prefixed by >>): In file included from arch/arm64/include/asm/pgtable.h:12, from include/linux/pgtable.h:6, from include/linux/mm.h:33, from arch/arm64/kernel/asm-offsets.c:12: >> arch/arm64/include/asm/mte.h:89:1: warning: ignoring attribute 'gnu_inline' because it conflicts with attribute 'noinline' [-Wattributes] 89 | { | ^ arch/arm64/include/asm/mte.h:34:14: note: previous declaration here 34 | void noinstr check_mte_async_tcf0(void); | ^~~~~~~~~~~~~~~~~~~~ >> arch/arm64/include/asm/mte.h:88:20: error: static declaration of 'check_mte_async_tcf0' follows non-static declaration 88 | static inline void check_mte_async_tcf0(void) | ^~~~~~~~~~~~~~~~~~~~ arch/arm64/include/asm/mte.h:34:14: note: previous declaration of 'check_mte_async_tcf0' was here 34 | void noinstr check_mte_async_tcf0(void); | ^~~~~~~~~~~~~~~~~~~~ arch/arm64/include/asm/mte.h:92:1: warning: ignoring attribute 'gnu_inline' because it conflicts with attribute 'noinline' [-Wattributes] 92 | { | ^ arch/arm64/include/asm/mte.h:35:14: note: previous declaration here 35 | void noinstr clear_mte_async_tcf0(void); | ^~~~~~~~~~~~~~~~~~~~ >> arch/arm64/include/asm/mte.h:91:20: error: static declaration of 'clear_mte_async_tcf0' follows non-static declaration 91 | static inline void clear_mte_async_tcf0(void) | ^~~~~~~~~~~~~~~~~~~~ arch/arm64/include/asm/mte.h:35:14: note: previous declaration of 'clear_mte_async_tcf0' was here 35 | void noinstr clear_mte_async_tcf0(void); | ^~~~~~~~~~~~~~~~~~~~ -- In file included from arch/arm64/include/asm/pgtable.h:12, from include/linux/pgtable.h:6, from include/linux/mm.h:33, from arch/arm64/kernel/asm-offsets.c:12: >> arch/arm64/include/asm/mte.h:89:1: warning: ignoring attribute 'gnu_inline' because it conflicts with attribute 'noinline' [-Wattributes] 89 | { | ^ arch/arm64/include/asm/mte.h:34:14: note: previous declaration here 34 | void noinstr check_mte_async_tcf0(void); | ^~~~~~~~~~~~~~~~~~~~ >> arch/arm64/include/asm/mte.h:88:20: error: static declaration of 'check_mte_async_tcf0' follows non-static declaration 88 | static inline void check_mte_async_tcf0(void) | ^~~~~~~~~~~~~~~~~~~~ arch/arm64/include/asm/mte.h:34:14: note: previous declaration of 'check_mte_async_tcf0' was here 34 | void noinstr check_mte_async_tcf0(void); | ^~~~~~~~~~~~~~~~~~~~ arch/arm64/include/asm/mte.h:92:1: warning: ignoring attribute 'gnu_inline' because it conflicts with attribute 'noinline' [-Wattributes] 92 | { | ^ arch/arm64/include/asm/mte.h:35:14: note: previous declaration here 35 | void noinstr clear_mte_async_tcf0(void); | ^~~~~~~~~~~~~~~~~~~~ >> arch/arm64/include/asm/mte.h:91:20: error: static declaration of 'clear_mte_async_tcf0' follows non-static declaration 91 | static inline void clear_mte_async_tcf0(void) | ^~~~~~~~~~~~~~~~~~~~ arch/arm64/include/asm/mte.h:35:14: note: previous declaration of 'clear_mte_async_tcf0' was here 35 | void noinstr clear_mte_async_tcf0(void); | ^~~~~~~~~~~~~~~~~~~~ make[2]: *** [scripts/Makefile.build:116: arch/arm64/kernel/asm-offsets.s] Error 1 make[2]: Target '__build' not remade because of errors. make[1]: *** [Makefile:1233: prepare0] Error 2 make[1]: Target 'prepare' not remade because of errors. make: *** [Makefile:215: __sub-make] Error 2 make: Target 'prepare' not remade because of errors. vim +/check_mte_async_tcf0 +88 arch/arm64/include/asm/mte.h 20 21 void mte_clear_page_tags(void *addr); 22 unsigned long mte_copy_tags_from_user(void *to, const void __user *from, 23 unsigned long n); 24 unsigned long mte_copy_tags_to_user(void __user *to, void *from, 25 unsigned long n); 26 int mte_save_tags(struct page *page); 27 void mte_save_page_tags(const void *page_addr, void *tag_storage); 28 bool mte_restore_tags(swp_entry_t entry, struct page *page); 29 void mte_restore_page_tags(void *page_addr, const void *tag_storage); 30 void mte_invalidate_tags(int type, pgoff_t offset); 31 void mte_invalidate_tags_area(int type); 32 void *mte_allocate_tag_storage(void); 33 void mte_free_tag_storage(char *storage); > 34 void noinstr check_mte_async_tcf0(void); 35 void noinstr clear_mte_async_tcf0(void); 36 37 #ifdef CONFIG_ARM64_MTE 38 39 /* track which pages have valid allocation tags */ 40 #define PG_mte_tagged PG_arch_2 41 42 void mte_sync_tags(pte_t *ptep, pte_t pte); 43 void mte_copy_page_tags(void *kto, const void *kfrom); 44 void flush_mte_state(void); 45 void mte_thread_switch(struct task_struct *next); 46 void mte_suspend_exit(void); 47 long set_mte_ctrl(struct task_struct *task, unsigned long arg); 48 long get_mte_ctrl(struct task_struct *task); 49 int mte_ptrace_copy_tags(struct task_struct *child, long request, 50 unsigned long addr, unsigned long data); 51 52 void mte_assign_mem_tag_range(void *addr, size_t size); 53 54 #else /* CONFIG_ARM64_MTE */ 55 56 /* unused if !CONFIG_ARM64_MTE, silence the compiler */ 57 #define PG_mte_tagged 0 58 59 static inline void mte_sync_tags(pte_t *ptep, pte_t pte) 60 { 61 } 62 static inline void mte_copy_page_tags(void *kto, const void *kfrom) 63 { 64 } 65 static inline void flush_mte_state(void) 66 { 67 } 68 static inline void mte_thread_switch(struct task_struct *next) 69 { 70 } 71 static inline void mte_suspend_exit(void) 72 { 73 } 74 static inline long set_mte_ctrl(struct task_struct *task, unsigned long arg) 75 { 76 return 0; 77 } 78 static inline long get_mte_ctrl(struct task_struct *task) 79 { 80 return 0; 81 } 82 static inline int mte_ptrace_copy_tags(struct task_struct *child, 83 long request, unsigned long addr, 84 unsigned long data) 85 { 86 return -EIO; 87 } > 88 static inline void check_mte_async_tcf0(void) > 89 { 90 } > 91 static inline void clear_mte_async_tcf0(void) 92 { 93 } 94 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip