]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
ipv6: convert CONFIG_IPV6 to built-in only and clean up Kconfigs
authorFernando Fernandez Mancera <fmancera@suse.de>
Wed, 25 Mar 2026 12:08:42 +0000 (13:08 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sun, 29 Mar 2026 18:21:22 +0000 (11:21 -0700)
commit309b905deee595619cc38719f48d63d57b8bff3d
tree877158428ba63e826349eff2a21faa18682b2dc8
parentced629dc8e5c51ff2b5d847adeeb1035cd655d58
ipv6: convert CONFIG_IPV6 to built-in only and clean up Kconfigs

Maintaining a modular IPv6 stack offers image size 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].

[1] http://www.linux-m68k.org/faq/ram.html

Signed-off-by: Fernando Fernandez Mancera <fmancera@suse.de>
Tested-by: Ricardo B. Marlière <rbm@suse.com>
Acked-by: Krzysztof Kozlowski <krzk@kernel.org> # arm64
Link: https://patch.msgid.link/20260325120928.15848-2-fmancera@suse.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
36 files changed:
arch/arm64/configs/defconfig
arch/m68k/configs/amiga_defconfig
arch/m68k/configs/apollo_defconfig
arch/m68k/configs/atari_defconfig
arch/m68k/configs/bvme6000_defconfig
arch/m68k/configs/hp300_defconfig
arch/m68k/configs/mac_defconfig
arch/m68k/configs/multi_defconfig
arch/m68k/configs/mvme147_defconfig
arch/m68k/configs/mvme16x_defconfig
arch/m68k/configs/q40_defconfig
arch/m68k/configs/sun3_defconfig
arch/m68k/configs/sun3x_defconfig
drivers/infiniband/Kconfig
drivers/infiniband/hw/ocrdma/Kconfig
drivers/infiniband/ulp/ipoib/Kconfig
drivers/net/Kconfig
drivers/net/ethernet/broadcom/Kconfig
drivers/net/ethernet/chelsio/Kconfig
drivers/net/ethernet/mellanox/mlxsw/Kconfig
drivers/net/ethernet/netronome/Kconfig
drivers/scsi/bnx2fc/Kconfig
drivers/scsi/bnx2i/Kconfig
drivers/scsi/cxgbi/cxgb3i/Kconfig
drivers/scsi/cxgbi/cxgb4i/Kconfig
fs/dlm/Kconfig
fs/gfs2/Kconfig
net/bridge/Kconfig
net/ipv4/Kconfig
net/ipv6/Kconfig
net/ipv6/af_inet6.c
net/l2tp/Kconfig
net/netfilter/Kconfig
net/rxrpc/Kconfig
net/sctp/Kconfig
net/tipc/Kconfig