Re: RFC: [2.6 patch] disallow modular IPv6

From: Arnaldo Carvalho de Melo
Date: Sun Sep 28 2003 - 18:42:06 EST


Em Mon, Sep 29, 2003 at 01:24:03AM +0200, Adrian Bunk escreveu:
> On Sun, Sep 28, 2003 at 08:18:42PM -0300, Arnaldo Carvalho de Melo wrote:
> > Em Mon, Sep 29, 2003 at 12:59:41AM +0200, Adrian Bunk escreveu:
> > > It seems modular IPv6 doesn't work 100% reliable, e.g. after looking at
> > > the code it doesn't seem to be a good idea to compile a kernel without
> > > IPv6 support and later build and install IPv6 modules. Is there a great
> > > need for modular IPv6 or is the patch below to disallow modular IPv6 OK?
> >
> > Please, don't... We're going in the all modules direction, not the other
> > way around, distro (general purpose) kernels would get big bloat in the
> > static kernel.
>
> E.g. from include/net/tcp.h:
>
> <-- snip -->
>
> ...
> struct tcp_skb_cb {
> union {
> struct inet_skb_parm h4;
> #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
> struct inet6_skb_parm h6;
> #endif
> } header; /* For incoming frames */
> ...
>
> <-- snip -->
>
> This is broken since it's legal to compile a module much later than the
> kernel.
>
> If modular IPv6 is allowed, the #if has to be removed, and the struct
> will be larger in the case IPv6 is never be used.

Its not just this, look at all the CONFIG_IPV6 related #ifdefs in the core
tcp/ip v4 code, the point is that this is a (currently) needed limitation to be
able to ship a kernel that can be used by both ipv6 users and people that
doesn't (yet) need ipv6.

Simply removing the ifdefs in the headers will not help, leaving it in the
kernel will bloat general purpose kernels, so can we live with this limitation
till we sort out the IPV6/IPV4 entanglement in a good way? I.e. lets leave ipv6
as a special case, perhaps just adding a big fat warning in relevant Kconfigs.

- Arnaldo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/