Hi Yu-cheng, Thank you for the patch! Yet something to improve: [auto build test ERROR on asm-generic/master] [also build test ERROR on v4.17 next-20180607] [cannot apply to tip/x86/core mmotm/master] [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/Yu-cheng-Yu/Control-Flow-Enforcement-Part-2/20180608-111152 base: https://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git master config: sparc64-allmodconfig (attached as .config) compiler: sparc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/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=sparc64 All error/warnings (new ones prefixed by >>): In file included from arch/sparc/include/asm/pgtable_64.h:1064:0, from arch/sparc/include/asm/pgtable.h:5, from include/linux/memremap.h:8, from include/linux/mm.h:27, from mm//swap.c:16: include/asm-generic/pgtable.h: In function 'huge_ptep_set_wrorptect_flush': >> include/asm-generic/pgtable.h:129:2: error: implicit declaration of function 'huge_ptep_set_wrprotect'; did you mean 'huge_ptep_set_wrorptect_flush'? [-Werror=implicit-function-declaration] huge_ptep_set_wrprotect(vma->vm_mm, addr, ptep); ^~~~~~~~~~~~~~~~~~~~~~~ huge_ptep_set_wrorptect_flush In file included from include/linux/hugetlb.h:445:0, from mm//swap.c:35: arch/sparc/include/asm/hugetlb.h: At top level: >> arch/sparc/include/asm/hugetlb.h:59:20: warning: conflicting types for 'huge_ptep_set_wrprotect' static inline void huge_ptep_set_wrprotect(struct mm_struct *mm, ^~~~~~~~~~~~~~~~~~~~~~~ >> arch/sparc/include/asm/hugetlb.h:59:20: error: static declaration of 'huge_ptep_set_wrprotect' follows non-static declaration In file included from arch/sparc/include/asm/pgtable_64.h:1064:0, from arch/sparc/include/asm/pgtable.h:5, from include/linux/memremap.h:8, from include/linux/mm.h:27, from mm//swap.c:16: include/asm-generic/pgtable.h:129:2: note: previous implicit declaration of 'huge_ptep_set_wrprotect' was here huge_ptep_set_wrprotect(vma->vm_mm, addr, ptep); ^~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +129 include/asm-generic/pgtable.h 123 124 #ifndef __HAVE_ARCH_HUGE_PTEP_SET_WRPROTECT_FLUSH 125 static inline void huge_ptep_set_wrorptect_flush(struct vm_area_struct *vma, 126 unsigned long addr, 127 pte_t *ptep) 128 { > 129 huge_ptep_set_wrprotect(vma->vm_mm, addr, ptep); 130 } 131 #endif 132 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation