Without this patch (to 2.6.6 kernel) it is not possible to compile ipv6 as a module additionaly, after the compilation of kernel and modules, because functions from random.c being used by ipv6 code are not compiled (and random.c is almost always in kernel, not as a module, so recompiling whole kernel is a must). There is the same thing with IPv4 and there are not those silly ifdefs around those functions, I don't see a reason why there should be for v6. - JiKos UPDATE: this is not sufficient. I will work on it later --- drivers/char/random.c.old Mon May 10 04:32:00 2004 +++ drivers/char/random.c Thu May 20 23:58:27 2004 @@ -2146,8 +2146,6 @@ /* Alternative: return sum of all words? */ } -#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) - static __u32 twothirdsMD4Transform (__u32 const buf[4], __u32 const in[12]) { __u32 a = buf[0], b = buf[1], c = buf[2], d = buf[3]; @@ -2197,7 +2195,6 @@ return buf[1] + b; /* "most hashed" word */ /* Alternative: return sum of all words? */ } -#endif #undef ROUND #undef F @@ -2271,7 +2268,6 @@ return keyptr; } -#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) __u32 secure_tcpv6_sequence_number(__u32 *saddr, __u32 *daddr, __u16 sport, __u16 dport) { @@ -2309,7 +2305,6 @@ } EXPORT_SYMBOL(secure_ipv6_id); -#endif __u32 secure_tcp_sequence_number(__u32 saddr, __u32 daddr,