summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin KaFai Lau <martin.lau@kernel.org>2026-03-24 01:52:50 +0300
committerAlexei Starovoitov <ast@kernel.org>2026-03-24 18:47:33 +0300
commit280de43e88c0ed3ac453dde05ccb7e72dca01780 (patch)
tree2e4257984ede256a63b053d71b5f338143ca0e01
parent03b7b389fe88ce07d3b91e2d6b07ee67a3281d4c (diff)
downloadlinux-280de43e88c0ed3ac453dde05ccb7e72dca01780.tar.xz
bpf: Remove ipv6_bpf_stub usage in test_run
bpf_prog_test_run_skb() uses net->ipv6.ip6_null_entry for BPF_PROG_TYPE_LWT_XMIT test runs. It currently checks ipv6_bpf_stub before using ip6_null_entry. ipv6_bpf_stub will be removed by the CONFIG_IPV6=m support removal series posted at [1], so switch this check to ipv6_mod_enabled() instead. This change depends on that series [1]. Without it, CONFIG_IPV6=m is still possible, and net->ipv6.ip6_null_entry remains NULL until the IPv6 module is loaded. [1] https://lore.kernel.org/netdev/20260320185649.5411-1-fmancera@suse.de/ Cc: Jakub Kicinski <kuba@kernel.org> Cc: Fernando Fernandez Mancera <fmancera@suse.de> Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org> Reviewed-by: Sun Jian <sun.jian.kdev@gmail.com> Reviewed-by: Fernando Fernandez Mancera <fmancera@suse.de> Link: https://lore.kernel.org/r/20260323225250.1623542-1-martin.lau@linux.dev Signed-off-by: Alexei Starovoitov <ast@kernel.org>
-rw-r--r--net/bpf/test_run.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/net/bpf/test_run.c b/net/bpf/test_run.c
index 56bc8dc1e281..fb25184ed03b 100644
--- a/net/bpf/test_run.c
+++ b/net/bpf/test_run.c
@@ -1157,15 +1157,12 @@ int bpf_prog_test_run_skb(struct bpf_prog *prog, const union bpf_attr *kattr,
}
if (prog->type == BPF_PROG_TYPE_LWT_XMIT) {
- if (!ipv6_bpf_stub) {
- pr_warn_once("Please test this program with the IPv6 module loaded\n");
+ if (!ipv6_mod_enabled()) {
+ pr_warn_once("Please test this program with IPv6 enabled kernel\n");
ret = -EOPNOTSUPP;
goto out;
}
#if IS_ENABLED(CONFIG_IPV6)
- /* For CONFIG_IPV6=n, ipv6_bpf_stub is NULL which is
- * handled by the above if statement.
- */
dst_hold(&net->ipv6.ip6_null_entry->dst);
skb_dst_set(skb, &net->ipv6.ip6_null_entry->dst);
#endif