public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Fernando Fernandez Mancera <fmancera@suse.de>
To: Ido Schimmel <idosch@nvidia.com>
Cc: netdev@vger.kernel.org, davem@davemloft.net, edumazet@google.com,
	kuba@kernel.org, pabeni@redhat.com, horms@kernel.org,
	dsahern@kernel.org, rbm@suse.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 00/11 net-next v4] Convert CONFIG_IPV6 to built-in and remove stubs
Date: Mon, 23 Mar 2026 13:19:56 +0100	[thread overview]
Message-ID: <8c136575-e23e-4cc2-a455-f1ba1abde2d5@suse.de> (raw)
In-Reply-To: <20260322172702.GA121169@shredder>

On 3/22/26 6:27 PM, Ido Schimmel wrote:
> On Fri, Mar 20, 2026 at 07:55:52PM +0100, Fernando Fernandez Mancera wrote:
>> Changes:
>>    v4:
>>      Patch 2: new patch introduced on this revision
>>      Patch 3: drop some IS_BUILTIN(IPV6) on files compiled only when IPV6=y
>>      Patch 5: introduce ipv6_mod_enabled() checks on fib6_nh_init(), ip6_dst_lookup_flow() and ip6_fragment() to avoid crash when ipv6.disable=1 during boot
>>      Patch 6: use &nd_tbl on code guarded by IS_ENABLED(CONFIG_IPV6)
> 
> The IPv6 code is still using ipv6_get_nd_tbl() for some reason. If you
> remove it from there (it's not needed), then we are only left with
> handful of users that can be converted to use '&nd_tbl' when IPv6 is
> enabled. Something like the patch below.
> 
Hi Ido, the main reason why ipv6_get_nd_tbl() is used on IPv6 code is 
due to inlined functions. __ipv6_neigh_lookup_noref() is used in several 
places not guarded by IS_ENABLED(CONFIG_IPV6) preprocessor directive. 
That leads to undefined references when compiling with CONFIG_IPV6=n.

ld: vmlinux.o: in function `bpf_ipv4_fib_lookup':
filter.c:(.text+0x322b9dc): undefined reference to `nd_tbl'
ld: filter.c:(.text+0x322b9fb): undefined reference to `nd_tbl'
ld: filter.c:(.text+0x322ce1a): undefined reference to `nd_tbl'
ld: vmlinux.o: in function `ipv4_confirm_neigh':
route.c:(.text+0x345ade7): undefined reference to `nd_tbl'
ld: route.c:(.text+0x345ae06): undefined reference to `nd_tbl'
ld: vmlinux.o:route.c:(.text+0x345b74f): more undefined references to 
`nd_tbl' follow

I think that using ipv6_get_nd_tbl() is cleaner than guarding the usage 
of nd_tbl inside the function itself. In addition, I do not think we 
need to guard every __ipv6_neigh_lookup_noref_stub() instance we are 
dropping/replacing because that code should never be reached with 
ipv6.disabled=1 or CONFIG_IPV6=n, otherwise it would crash. That means 
it should be safe to use ipv6_get_nd_tbl() there.

What do you think Ido? I can still drop ipv6_get_nd_tbl() but it will 
require some IS_ENABLED(IPV6) preprocessor checks.

Thanks,
Fernando

  reply	other threads:[~2026-03-23 12:20 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-20 18:55 [PATCH 00/11 net-next v4] Convert CONFIG_IPV6 to built-in and remove stubs Fernando Fernandez Mancera
2026-03-20 18:55 ` [PATCH 01/11 net-next v4] ipv6: convert CONFIG_IPV6 to built-in only and clean up Kconfigs Fernando Fernandez Mancera
2026-03-20 18:55 ` [PATCH 02/11 net-next v4] net: remove EXPORT_IPV6_MOD() and EXPORT_IPV6_MOD_GPL() macros Fernando Fernandez Mancera
2026-03-20 18:55 ` [PATCH 03/11 net-next v4] ipv6: replace IS_BUILTIN(CONFIG_IPV6) with IS_ENABLED(CONFIG_IPV6) Fernando Fernandez Mancera
2026-03-23 20:11   ` Ido Schimmel
2026-03-24  8:47     ` Ido Schimmel
2026-03-20 18:55 ` [PATCH 04/11 net-next v4] ipv6: remove dynamic ICMPv6 sender registration infrastructure Fernando Fernandez Mancera
2026-03-20 18:55 ` [PATCH 05/11 net-next v4] ipv6: prepare headers for ipv6_stub removal Fernando Fernandez Mancera
2026-03-24  8:22   ` Ido Schimmel
2026-03-24 11:25     ` Fernando Fernandez Mancera
2026-03-20 18:56 ` [PATCH 06/11 net-next v4] drivers: net: drop ipv6_stub usage and use direct function calls Fernando Fernandez Mancera
2026-03-20 18:56 ` [PATCH 07/11 net-next v4] ipv4: " Fernando Fernandez Mancera
2026-03-20 18:56 ` [PATCH 08/11 net-next v4] net: convert remaining ipv6_stub users to " Fernando Fernandez Mancera
2026-03-20 18:56 ` [PATCH 09/11 net-next v4] bpf: remove ipv6_bpf_stub completely and use " Fernando Fernandez Mancera
2026-03-20 18:56 ` [PATCH 10/11 net-next v4] ipv6: remove ipv6_stub infrastructure completely Fernando Fernandez Mancera
2026-03-20 18:56 ` [PATCH 11/11 net-next v4] netfilter: remove nf_ipv6_ops and use direct function calls Fernando Fernandez Mancera
2026-03-22  0:03 ` [PATCH 00/11 net-next v4] Convert CONFIG_IPV6 to built-in and remove stubs Jakub Kicinski
2026-03-23 12:32   ` Fernando Fernandez Mancera
2026-03-23 17:39     ` Jakub Kicinski
2026-03-22 17:27 ` Ido Schimmel
2026-03-23 12:19   ` Fernando Fernandez Mancera [this message]
2026-03-23 14:38     ` David Ahern
2026-03-23 15:06       ` 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=8c136575-e23e-4cc2-a455-f1ba1abde2d5@suse.de \
    --to=fmancera@suse.de \
    --cc=davem@davemloft.net \
    --cc=dsahern@kernel.org \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=idosch@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=rbm@suse.com \
    /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