Messages in this thread | | | Date | Tue, 30 Sep 2003 12:04:31 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: RFC: [2.6 patch] disallow modular IPv6 |
| |
Em Tue, Sep 30, 2003 at 03:37:29PM +0200, Adrian Bunk escreveu: > On Mon, Sep 29, 2003 at 10:11:29PM -0700, David S. Miller wrote: > > On Sun, 28 Sep 2003 21:32:30 -0300 > > Arnaldo Carvalho de Melo <acme@conectiva.com.br> wrote: > > > > > Em Mon, Sep 29, 2003 at 02:14:39AM +0200, Adrian Bunk escreveu: > > > > On Sun, Sep 28, 2003 at 08:39:10PM -0300, Arnaldo Carvalho de Melo wrote: > > > > What about the following solution (the names and help texts for the > > > > config options might not be optimal, I hope you understand the > > > > intention): > > > > > > > > config IPV6_SUPPORT > > > > bool "IPv6 support" > > > > > > > > config IPV6_ENABLE > > > > tristate "enable IPv6" > > > > depends on IPV6_SUPPORT > > > > > > > > IPV6_SUPPORT changes structs etc. and IPV6_ENABLE is responsible for > > > > ipv6.o . > > > > > > Humm, and the idea is? This seems confusing, could you elaborate on why such > > > scheme is a good thing? > > > > I think the idea is totally broken. At first, Adrian comments that > > changing the layout of structs based upon a config option is broken, > > then he proposes a config option that does nothing except change the > > layout of structures. > > > > The current situation is perfectly fine. > > I did perhaps express my opinion not clearly. > > My personal opinions: > > It's OK that setting an option to y changes structs or whatever else in > the kernel. > > It's not OK if adding a module changes the layout of structs compiled > into the kernel. > > Modules have many advantages, one advantage is e.g. that they allow > generic distribution kernels without resulting in huge kernel images. > > Another advantage is that you can later add modules to a running kernel, > you can compile a module for your kernel and insert it without rebooting > the machine. This is currently not possible with moduler IPv6. > > That was my personal opinion. > > My opinions seem to be very close to the opinions of David Woodhouse, so > there's no need to repeat your discussion.
And just for the record, as a matter of taste I'd like to see all #ifdefs in structs to disappear, look at what I did to struct sock in 2.5 and look at struct sock (include/net/sock.h) in 2.4: no #ifdefs where there was a ton, what I disagree is to make IPV6 not to be built as a module, that would harm generic kernels, what I said was that this has to be fixed properly, this requires time and we are too late in 2.6 for such bigger changes, as this is not just #ifdefs in structs, it is #ifdefs in the IPV4 code, etc.
Lets revisit this in 2.7.
- Arnaldo
For the record: I did an audit in 99% of the headers in the linux source tree, #ifdefs in structs are mostly just for: CONFIG_PROCFS, DEBUG, NETFILTER and IPV6, and just a few. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |