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: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20260712013941.4570-1-fmancera@suse.de>
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 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 06/13 RFC net-next] net: udp: split IPv4 specific logic into udp_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
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox