Re: [PATCH 01/10 net-next v2] ipv6: convert CONFIG_IPV6 to built-in only and clean up Kconfigs
Geert Uytterhoeven <[email protected]> Thu, 12 Mar 2026 17:05:46 +0100
| Newsgroups | org.kernel.vger.linux-sctp,dev.linux.lists.bridge,dev.linux.lists.gfs2,org.kernel.vger.linux-kernel,org.kernel.vger.linux-m68k,org.kernel.vger.linux-rdma,org.kernel.vger.linux-scsi,org.kernel.vger.netdev,org.kernel.vger.netfilter-devel |
|---|---|
| Message-ID | <CAMuHMdWK0P+EEQXOQ8FMb7DYt-95dAmmbOjMhxCKHnvHRntojA@mail.gmail.com> |
Hi Fernando, On Thu, 12 Mar 2026 at 16:12, Fernando Fernandez Mancera <[email protected]> wrote: > On 3/12/26 4:02 AM, Jakub Kicinski wrote: > > On Tue, 10 Mar 2026 16:34:24 +0100 Fernando Fernandez Mancera wrote: > >> Maintaining a modular IPv6 stack offers image size and memory savings > >> for specific setups, this benefit is outweighed by the architectural > >> burden it imposes on the subsystems on implementation and maintenance. > >> Therefore, drop it. > >> > >> Change CONFIG_IPV6 from tristate to bool. Remove all Kconfig > >> dependencies across the tree that explicitly checked for IPV6=m. In > >> addition, remove MODULE_DESCRIPTION(), MODULE_ALIAS(), MODULE_AUTHOR() > >> and MODULE_LICENSE(). > >> > >> This is also replacing module_init() by device_initcall(). It is not > >> possible to use fs_initcall() as IPv4 does because that creates a race > >> condition on IPv6 addrconf. > >> > >> Finally, modify the default configs from CONFIG_IPV6=m to CONFIG_IPV6=y > >> except for m68k as according to the bloat-o-meter the image is > >> increasing by 330KB~ and that isn't acceptable. Instead, disable IPv6 on > >> this architecture by default. This is aligned with m68k RAM requirements > >> and recommendations [1]. > > > > AI has spotted: > > > >> diff --git a/arch/m68k/configs/amiga_defconfig b/arch/m68k/configs/amiga_defconfig > >> index 31d16cba9879..de088071dde4 100644 > >> --- a/arch/m68k/configs/amiga_defconfig > >> +++ b/arch/m68k/configs/amiga_defconfig > >> @@ -64,7 +64,6 @@ CONFIG_NET_IPIP=m > >> CONFIG_NET_IPGRE_DEMUX=m > >> CONFIG_NET_IPGRE=m > >> CONFIG_NET_IPVTI=m > >> -CONFIG_NET_FOU_IP_TUNNELS=y > >> CONFIG_INET_AH=m > > > > Is CONFIG_NET_FOU_IP_TUNNELS=y removed intentionally? This option > > provides FOU/GUE encapsulation for IP tunnels and has 'depends on > > NET_IPIP || NET_IPGRE || IPV6_SIT' as its Kconfig dependency. With IPv6 > > disabled, IPV6_SIT becomes unavailable, but CONFIG_NET_IPIP=m and > > CONFIG_NET_IPGRE=m are both still present in the defconfig, so the > > dependency remains satisfiable. > > > > Since CONFIG_NET_FOU_IP_TUNNELS has no 'default y', removing it from the > > defconfig means FOU/GUE encapsulation for IP tunnels will be silently > > disabled by default on m68k. The commit message describes only disabling > > IPv6 on m68k, not removing IPv4 FOU tunnel support. > > > > I noticed that when running > > ./scripts/config --disable CONFIG_IPV6 > > for the m68k, the script was adding CONFIG_LWTUNNEL=y and CONFIG_NET_FOU=y. > > CONFIG_LWTUNNEL was selected by multiple IPV6 features. I do not think > it makes sense to keep it for m68k given the information there is on > http://www.linux-m68k.org/faq/platinfo.html. Dunno about lwtunnel... > CONFIG_NET_FOU was something IPV6_FOU required, probably it should be > just dropped from the config instead of explicitly turn it off as it > turns off FOU_IP_TUNNELS too. It will be selected by FOU_IP_TUNNELS too > anyway. ... but CONFIG_NET_FOU seems to be just a gatekeeping symbol for the tristate symbol IPV6_FOU, so FOU is still a module., which is good. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds