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.

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.

I will update the config and also the commit message about CONFIG_LWTUNNEL.

FTR; I doubt anyone is running Foo over UDP in m68k but let's avoid doing extra undocumented changes.

Thanks,
Fernando.

This affects four m68k defconfigs:
- amiga_defconfig
- apollo_defconfig
- atari_defconfig
- bvme6000_defconfig



Reply via email to