Hi Casey, I love your patch! Yet something to improve: [auto build test ERROR on nf/master] [also build test ERROR on linus/master v5.10-rc4 next-20201120] [cannot apply to nf-next/master security/next-testing] [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/Casey-Schaufler/LSM-Module-stacking-for-AppArmor/20201121-044616 base: https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf.git master config: x86_64-randconfig-a015-20201120 (attached as .config) compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 3ded927cf80ac519f9f9c4664fef08787f7c537d) 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 # install x86_64 cross compiling tool for clang build # apt-get install binutils-x86-64-linux-gnu # https://github.com/0day-ci/linux/commit/3b464b0251cffe5ac73c81b701fd8d146664a7a3 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Casey-Schaufler/LSM-Module-stacking-for-AppArmor/20201121-044616 git checkout 3b464b0251cffe5ac73c81b701fd8d146664a7a3 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): In file included from drivers/net/gtp.c:30: In file included from include/net/xfrm.h:15: >> include/linux/audit.h:563:1: error: expected external declaration +static inline struct audit_context *audit_alloc_local(gfp_t gfpflags) ^ 1 error generated. -- In file included from drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:40: In file included from include/net/xfrm.h:15: >> include/linux/audit.h:563:1: error: expected external declaration +static inline struct audit_context *audit_alloc_local(gfp_t gfpflags) ^ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8108:14: warning: division by zero is undefined [-Wdivision-by-zero] cmd_type |= IXGBE_SET_FLAG(tx_flags, IXGBE_TX_FLAGS_HW_VLAN, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8098:26: note: expanded from macro 'IXGBE_SET_FLAG' ((u32)(_input & _flag) / (_flag / _result))) ^ ~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8112:14: warning: division by zero is undefined [-Wdivision-by-zero] cmd_type |= IXGBE_SET_FLAG(tx_flags, IXGBE_TX_FLAGS_TSO, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8098:26: note: expanded from macro 'IXGBE_SET_FLAG' ((u32)(_input & _flag) / (_flag / _result))) ^ ~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8116:14: warning: division by zero is undefined [-Wdivision-by-zero] cmd_type |= IXGBE_SET_FLAG(tx_flags, IXGBE_TX_FLAGS_TSTAMP, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8098:26: note: expanded from macro 'IXGBE_SET_FLAG' ((u32)(_input & _flag) / (_flag / _result))) ^ ~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8120:14: warning: division by zero is undefined [-Wdivision-by-zero] cmd_type ^= IXGBE_SET_FLAG(skb->no_fcs, 1, IXGBE_ADVTXD_DCMD_IFCS); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8098:26: note: expanded from macro 'IXGBE_SET_FLAG' ((u32)(_input & _flag) / (_flag / _result))) ^ ~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8131:19: warning: division by zero is undefined [-Wdivision-by-zero] olinfo_status |= IXGBE_SET_FLAG(tx_flags, ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8098:26: note: expanded from macro 'IXGBE_SET_FLAG' ((u32)(_input & _flag) / (_flag / _result))) ^ ~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8136:19: warning: division by zero is undefined [-Wdivision-by-zero] olinfo_status |= IXGBE_SET_FLAG(tx_flags, ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8098:26: note: expanded from macro 'IXGBE_SET_FLAG' ((u32)(_input & _flag) / (_flag / _result))) ^ ~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8141:19: warning: division by zero is undefined [-Wdivision-by-zero] olinfo_status |= IXGBE_SET_FLAG(tx_flags, ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8098:26: note: expanded from macro 'IXGBE_SET_FLAG' ((u32)(_input & _flag) / (_flag / _result))) ^ ~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8149:19: warning: division by zero is undefined [-Wdivision-by-zero] olinfo_status |= IXGBE_SET_FLAG(tx_flags, ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8098:26: note: expanded from macro 'IXGBE_SET_FLAG' ((u32)(_input & _flag) / (_flag / _result))) ^ ~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:10621:45: warning: shift count >= width of type [-Wshift-count-overflow] if (!dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) { ^~~~~~~~~~~~~~~~ include/linux/dma-mapping.h:76:54: note: expanded from macro 'DMA_BIT_MASK' #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) ^ ~~~ 9 warnings and 1 error generated. -- In file included from drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:33: In file included from include/net/xfrm.h:15: >> include/linux/audit.h:563:1: error: expected external declaration +static inline struct audit_context *audit_alloc_local(gfp_t gfpflags) ^ drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:4529:45: warning: shift count >= width of type [-Wshift-count-overflow] if (!dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) { ^~~~~~~~~~~~~~~~ include/linux/dma-mapping.h:76:54: note: expanded from macro 'DMA_BIT_MASK' #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) ^ ~~~ 1 warning and 1 error generated. vim +563 include/linux/audit.h 559 560 extern int audit_n_rules; 561 extern int audit_signals; 562 #else /* CONFIG_AUDITSYSCALL */ > 563 +static inline struct audit_context *audit_alloc_local(gfp_t gfpflags) 564 { 565 return NULL; 566 } 567 static inline void audit_free_context(struct audit_context *context) 568 { } 569 static inline int audit_alloc(struct task_struct *task) 570 { 571 return 0; 572 } 573 static inline void audit_free(struct task_struct *task) 574 { } 575 static inline void audit_syscall_entry(int major, unsigned long a0, 576 unsigned long a1, unsigned long a2, 577 unsigned long a3) 578 { } 579 static inline void audit_syscall_exit(void *pt_regs) 580 { } 581 static inline bool audit_dummy_context(void) 582 { 583 return true; 584 } 585 static inline void audit_set_context(struct task_struct *task, struct audit_context *ctx) 586 { } 587 static inline struct audit_context *audit_context(void) 588 { 589 return NULL; 590 } 591 static inline struct filename *audit_reusename(const __user char *name) 592 { 593 return NULL; 594 } 595 static inline void audit_getname(struct filename *name) 596 { } 597 static inline void audit_getcwd(void) 598 { } 599 static inline void audit_inode(struct filename *name, 600 const struct dentry *dentry, 601 unsigned int aflags) 602 { } 603 static inline void audit_file(struct file *file) 604 { 605 } 606 static inline void audit_inode_parent_hidden(struct filename *name, 607 const struct dentry *dentry) 608 { } 609 static inline void audit_inode_child(struct inode *parent, 610 const struct dentry *dentry, 611 const unsigned char type) 612 { } 613 static inline void audit_core_dumps(long signr) 614 { } 615 static inline void audit_seccomp(unsigned long syscall, long signr, int code) 616 { } 617 static inline void audit_seccomp_actions_logged(const char *names, 618 const char *old_names, int res) 619 { } 620 static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp) 621 { } 622 static inline void audit_ipc_set_perm(unsigned long qbytes, uid_t uid, 623 gid_t gid, umode_t mode) 624 { } 625 static inline void audit_bprm(struct linux_binprm *bprm) 626 { } 627 static inline int audit_socketcall(int nargs, unsigned long *args) 628 { 629 return 0; 630 } 631 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org