Re: [PATCH bpf-next v2 3/4] bpf: add bpf_icmp_send_unreach cgroup_skb kfunc

kernel test robot
2025-07-27T01:49:50Z

Hi Mahe,

kernel test robot noticed the following build errors:

[auto build test ERROR on bpf-next/master]

url: https://github.com/intel-lab-lkp/linux/commits/Mahe-Tardy/net-move-netfilter-nf_reject_fill_skb_dst-to-core-ipv4/20250726-030109
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link: https://lore.kernel.org/r/20250725185342.262067-4-mahe.tardy%40gmail.com
patch subject: [PATCH bpf-next v2 3/4] bpf: add bpf_icmp_send_unreach cgroup_skb kfunc
config: arm64-defconfig (https://download.01.org/0day-ci/archive/20250727/202507270940.kXGmRbg5-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250727/202507270940.kXGmRbg5-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202507270940.kXGmRbg5-lkp@intel.com/

All errors (new ones prefixed by >>):

aarch64-linux-ld: Unexpected GOT/PLT entries detected!
aarch64-linux-ld: Unexpected run-time procedure linkages detected!
aarch64-linux-ld: net/core/filter.o: in function `bpf_icmp_send_unreach':
>> net/core/filter.c:12184:(.text+0x14574): undefined reference to `ip6_route_reply_fetch_dst'

vim +12184 net/core/filter.c

12152
12153 __bpf_kfunc int bpf_icmp_send_unreach(struct __sk_buff *__skb, int code)
12154 {
12155 struct sk_buff *skb = (struct sk_buff *)__skb;
12156 struct sk_buff *nskb;
12157
12158 switch (skb->protocol) {
12159 case htons(ETH_P_IP):
12160 if (code < 0 || code > NR_ICMP_UNREACH)
12161 return -EINVAL;
12162
12163 nskb = skb_clone(skb, GFP_ATOMIC);
12164 if (!nskb)
12165 return -ENOMEM;
12166
12167 if (ip_route_reply_fetch_dst(nskb) < 0) {
12168 kfree_skb(nskb);
12169 return -EHOSTUNREACH;
12170 }
12171
12172 icmp_send(nskb, ICMP_DEST_UNREACH, code, 0);
12173 kfree_skb(nskb);
12174 break;
12175 #if IS_ENABLED(CONFIG_IPV6)
12176 case htons(ETH_P_IPV6):
12177 if (code < 0 || code > ICMPV6_REJECT_ROUTE)
12178 return -EINVAL;
12179
12180 nskb = skb_clone(skb, GFP_ATOMIC);
12181 if (!nskb)
12182 return -ENOMEM;
12183
12184 if (ip6_route_reply_fetch_dst(nskb) < 0) {
12185 kfree_skb(nskb);
12186 return -EHOSTUNREACH;
12187 }
12188
12189 icmpv6_send(nskb, ICMPV6_DEST_UNREACH, code, 0);
12190 kfree_skb(nskb);
12191 break;
12192 #endif
12193 default:
12194 return -EPROTONOSUPPORT;
12195 }
12196
12197 return SK_DROP;
12198 }
12199

--
0-DAY CI Kernel Test Service