From: sashiko-bot@kernel.org
To: "Fernando Fernandez Mancera" <fmancera@suse.de>
Cc: bpf@vger.kernel.org
Subject: Re: [PATCH 04/13 RFC net-next] net: tcp: move protocol agnostic TCP functions out of tcp_ipv4.c
Date: Fri, 30 Oct 2026 04:54:30 +0000 [thread overview]
Message-ID: <sashiko-outbox-190470@kernel.org> (raw)
In-Reply-To: <20260712013941.4570-5-fmancera@suse.de>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] Disabling CONFIG_IPV4 completely hides `/proc/net/sockstat` and `/proc/net/snmp`, causing a total loss of global TCP memory and SNMP metrics.
- [Low] Unused static structs `ipv6_mapped` and `tcp_sock_ipv6_mapped_specific` trigger `-Wunused-variable` and cause undefined references when `CONFIG_IPV4` is disabled.
--
--- Patch [4]: [PATCH 04/13 RFC net-next] net: tcp: move protocol agnostic TCP functions out of tcp_ipv4.c ---
commit 75343bf3b73e175ff640d8d0645b680b7c8368bd
Author: Fernando Fernandez Mancera <fmancera@suse.de>
Subject: net: tcp: move protocol agnostic TCP functions out of tcp_ipv4.c
This patch moves generic TCP functions out of tcp_ipv4.c into tcp.c to allow
compilation with CONFIG_IPV4=n. It renames tcp_v4_destroy_sock() to
tcp_destroy_sock() to reflect its shared usage and guards IPv4-specific
code in the IPv6 TCP implementation.
> diff --git a/net/ipv4/proc.c b/net/ipv4/proc.c
> index bfc06d1713ecb..b7f4e5ecf64d8 100644
> --- a/net/ipv4/proc.c
> +++ b/net/ipv4/proc.c
> @@ -50,6 +50,7 @@
> */
> static int sockstat_seq_show(struct seq_file *seq, void *v)
> {
> +#if IS_ENABLED(CONFIG_IPV4)
> struct net *net = seq->private;
> int orphans, sockets;
[Severity: Medium]
By guarding the entire body of sockstat_seq_show() with CONFIG_IPV4, does
this completely hide the output of /proc/net/sockstat when IPv4 is disabled?
Looking at inet_init() in net/ipv4/af_inet.c (around line 2062), the call to
ipv4_proc_init() is already bypassed entirely when CONFIG_IPV4=n. This means
ip_misc_proc_init() is never called to register the sockstat and snmp procfs
files in the first place.
Since the IPv6 equivalents (sockstat6 and snmp6) do not report shared TCP
global metrics, does this unintentionally leave administrators without
visibility into global TCP memory limits (like orphans and allocated sockets)
and TCP SNMP metrics?
> diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
> index ebe161d72fbd0..7f2ec3dfd2f07 100644
> --- a/net/ipv6/tcp_ipv6.c
> +++ b/net/ipv6/tcp_ipv6.c
> @@ -217,6 +217,7 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr_unsized *uaddr,
> */
>
> if (addr_type & IPV6_ADDR_MAPPED) {
> +#if IS_ENABLED(CONFIG_IPV4)
> u32 exthdrlen = icsk->icsk_ext_hdr_len;
> struct sockaddr_in sin;
[Severity: Low]
With this CONFIG_IPV4 guard, the references to ipv6_mapped and
tcp_sock_ipv6_mapped_specific inside tcp_v6_connect() are compiled out.
However, the definitions of these static structs at lines 2055 and 2068
in net/ipv6/tcp_ipv6.c are left unguarded. Could this trigger compiler
warnings for unused variables when CONFIG_IPV4 is disabled?
Furthermore, because these structs reference IPv4-specific functions like
tcp_v4_md5_lookup, could this result in undefined reference linker errors
if the compiler does not fully discard the unused structs?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260712013941.4570-1-fmancera@suse.de?part=4
next prev parent reply other threads:[~2026-10-30 4:54 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-12 1:38 [PATCH 00/13 RFC net-next] Allow compiling an IPv6-only kernel network stack Fernando Fernandez Mancera
2026-07-12 1:38 ` [PATCH 01/13 RFC net-next] net: ipv4: introduce CONFIG_IPV4 to decouple the IPv4 stack Fernando Fernandez Mancera
2026-07-12 1:38 ` [Intel-wired-lan] " Fernando Fernandez Mancera
2026-07-12 11:01 ` Arnd Bergmann
2026-07-12 11:01 ` [Intel-wired-lan] " Arnd Bergmann
2026-07-13 14:00 ` Fernando Fernandez Mancera
2026-07-13 14:00 ` [Intel-wired-lan] " Fernando Fernandez Mancera
2026-07-13 14:22 ` Arnd Bergmann
2026-07-13 14:22 ` [Intel-wired-lan] " Arnd Bergmann
2026-07-13 14:57 ` Fernando Fernandez Mancera
2026-07-13 14:57 ` [Intel-wired-lan] " Fernando Fernandez Mancera
2026-10-30 4:54 ` sashiko-bot
2026-07-12 1:39 ` [PATCH 02/13 RFC net-next] net: core: add IPv4 fallback stubs and guards for CONFIG_IPV4=n Fernando Fernandez Mancera
2026-10-30 4:54 ` sashiko-bot
2026-07-12 1:39 ` [PATCH 03/13 RFC net-next] net: inet: relocate ip_generic_getfrag and guard IPv4 socket logic Fernando Fernandez Mancera
2026-07-12 1:39 ` [PATCH 04/13 RFC net-next] net: tcp: move protocol agnostic TCP functions out of tcp_ipv4.c Fernando Fernandez Mancera
2026-10-30 4:54 ` sashiko-bot [this message]
2026-07-12 1:39 ` [PATCH 05/13 RFC net-next] net: raw: split IPv4 specific logic into raw_ipv4.c Fernando Fernandez Mancera
2026-07-12 1:39 ` [PATCH 06/13 RFC net-next] net: udp: split IPv4 specific logic into udp_ipv4.c Fernando Fernandez Mancera
2026-07-12 1:39 ` [PATCH 07/13 RFC net-next] net: icmp: split IPv4 specific logic into icmp_ipv4.c Fernando Fernandez Mancera
2026-07-12 1:39 ` [PATCH 08/13 RFC net-next] net: ping: split IPv4 specific logic into ping_ipv4.c Fernando Fernandez Mancera
2026-10-30 4:54 ` sashiko-bot
2026-07-12 1:39 ` [PATCH 09/13 RFC net-next] net: fib: split common nexthop logic to fib_core.c Fernando Fernandez Mancera
2026-10-30 4:54 ` sashiko-bot
2026-07-12 1:39 ` [PATCH 10/13 RFC net-next] net: tunnel: guard IPv4 tunnel functions with CONFIG_IPV4 Fernando Fernandez Mancera
2026-07-12 1:39 ` [PATCH 11/13 RFC net-next] net: cipso: guard IPv4 packet manipulation functions Fernando Fernandez Mancera
2026-07-12 16:22 ` Paul Moore
2026-07-13 14:03 ` Fernando Fernandez Mancera
2026-10-30 4:54 ` sashiko-bot
2026-07-12 1:39 ` [PATCH 12/13 RFC net-next] netfilter: ipv4: guard ip_route_me_harder() with CONFIG_IPV4 Fernando Fernandez Mancera
2026-07-12 1:39 ` [PATCH 13/13 RFC net-next] net: ipv4: make CONFIG_IPV4 boolean Fernando Fernandez Mancera
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=sashiko-outbox-190470@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=fmancera@suse.de \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.