Hi Florian, kernel test robot noticed the following build warnings: [auto build test WARNING on bpf-next/master] url: https://github.com/intel-lab-lkp/linux/commits/Florian-Westphal/bpf-add-bpf_link-support-for-BPF_NETFILTER-programs/20230406-001447 base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master patch link: https://lore.kernel.org/r/20230405161116.13565-7-fw%40strlen.de patch subject: [PATCH bpf-next 6/6] bpf: add test_run support for netfilter program type config: s390-allyesconfig (https://download.01.org/0day-ci/archive/20230406/202304060207.JawhnyR9-lkp@xxxxxxxxx/config) compiler: s390-linux-gcc (GCC) 12.1.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/intel-lab-lkp/linux/commit/7fba218dfc4942aa6781f4d1b5c475a0569cfd2e git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Florian-Westphal/bpf-add-bpf_link-support-for-BPF_NETFILTER-programs/20230406-001447 git checkout 7fba218dfc4942aa6781f4d1b5c475a0569cfd2e # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=s390 olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=s390 SHELL=/bin/bash net/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Link: https://lore.kernel.org/oe-kbuild-all/202304060207.JawhnyR9-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): net/bpf/test_run.c: In function 'bpf_prog_test_run_nf': >> net/bpf/test_run.c:1750:30: warning: variable 'eth' set but not used [-Wunused-but-set-variable] 1750 | const struct ethhdr *eth; | ^~~ vim +/eth +1750 net/bpf/test_run.c 1737 1738 int bpf_prog_test_run_nf(struct bpf_prog *prog, 1739 const union bpf_attr *kattr, 1740 union bpf_attr __user *uattr) 1741 { 1742 struct net *net = current->nsproxy->net_ns; 1743 struct net_device *dev = net->loopback_dev; 1744 struct nf_hook_state *user_ctx, hook_state = { 1745 .pf = NFPROTO_IPV4, 1746 .hook = NF_INET_PRE_ROUTING, 1747 }; 1748 u32 size = kattr->test.data_size_in; 1749 u32 repeat = kattr->test.repeat; > 1750 const struct ethhdr *eth; 1751 struct bpf_nf_ctx ctx = { 1752 .state = &hook_state, 1753 }; 1754 struct sk_buff *skb = NULL; 1755 u32 retval, duration; 1756 void *data; 1757 int ret; 1758 1759 if (kattr->test.flags || kattr->test.cpu || kattr->test.batch_size) 1760 return -EINVAL; 1761 1762 if (size < ETH_HLEN + sizeof(struct iphdr)) 1763 return -EINVAL; 1764 1765 data = bpf_test_init(kattr, kattr->test.data_size_in, size, 1766 NET_SKB_PAD + NET_IP_ALIGN, 1767 SKB_DATA_ALIGN(sizeof(struct skb_shared_info))); 1768 if (IS_ERR(data)) 1769 return PTR_ERR(data); 1770 1771 eth = (struct ethhdr *)data; 1772 1773 if (!repeat) 1774 repeat = 1; 1775 1776 user_ctx = bpf_ctx_init(kattr, sizeof(struct nf_hook_state)); 1777 if (IS_ERR(user_ctx)) { 1778 kfree(data); 1779 return PTR_ERR(user_ctx); 1780 } 1781 1782 if (user_ctx) { 1783 ret = verify_and_copy_hook_state(&hook_state, user_ctx, dev); 1784 if (ret) 1785 goto out; 1786 } 1787 1788 skb = slab_build_skb(data); 1789 if (!skb) { 1790 ret = -ENOMEM; 1791 goto out; 1792 } 1793 1794 data = NULL; /* data released via kfree_skb */ 1795 1796 skb_reserve(skb, NET_SKB_PAD + NET_IP_ALIGN); 1797 __skb_put(skb, size); 1798 1799 skb->protocol = eth_type_trans(skb, dev); 1800 1801 skb_reset_network_header(skb); 1802 1803 ret = -EINVAL; 1804 1805 switch (skb->protocol) { 1806 case htons(ETH_P_IP): 1807 if (hook_state.pf == NFPROTO_IPV4) 1808 break; 1809 goto out; 1810 case htons(ETH_P_IPV6): 1811 if (size < ETH_HLEN + sizeof(struct ipv6hdr)) 1812 goto out; 1813 if (hook_state.pf == NFPROTO_IPV6) 1814 break; 1815 goto out; 1816 default: 1817 ret = -EPROTO; 1818 goto out; 1819 } 1820 1821 ctx.skb = skb; 1822 1823 ret = bpf_test_run(prog, &ctx, repeat, &retval, &duration, false); 1824 if (ret) 1825 goto out; 1826 1827 ret = bpf_test_finish(kattr, uattr, NULL, NULL, 0, retval, duration); 1828 1829 out: 1830 kfree(user_ctx); 1831 kfree_skb(skb); 1832 kfree(data); 1833 return ret; 1834 } 1835 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests