[NET]: Fix MAX_HEADER setting.
authorDavid S. Miller <davem@sunset.davemloft.net>
Wed, 29 Nov 2006 04:53:39 +0000 (20:53 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Wed, 29 Nov 2006 04:59:39 +0000 (20:59 -0800)
MAX_HEADER is either set to LL_MAX_HEADER or LL_MAX_HEADER + 48, and
this is controlled by a set of CONFIG_* ifdef tests.

It is trying to use LL_MAX_HEADER + 48 when any of the tunnels are
enabled which set hard_header_len like this:

dev->hard_header_len = LL_MAX_HEADER + sizeof(struct xxx);

The correct set of tunnel drivers which do this are:

ipip
ip_gre
ip6_tunnel
sit

so make the ifdef test match.

Noticed by Patrick McHardy and with help from Herbert Xu.

Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdevice.h

index 9264139bd8df0ee171c2d52531fa626720c42a1f..83b8c4f1d69d98649b10f1967a8e5522fea592bc 100644 (file)
@@ -93,8 +93,10 @@ struct netpoll_info;
 #endif
 #endif
 
 #endif
 #endif
 
-#if !defined(CONFIG_NET_IPIP) && \
-    !defined(CONFIG_IPV6) && !defined(CONFIG_IPV6_MODULE)
+#if !defined(CONFIG_NET_IPIP) && !defined(CONFIG_NET_IPIP_MODULE) && \
+    !defined(CONFIG_NET_IPGRE) &&  !defined(CONFIG_NET_IPGRE_MODULE) && \
+    !defined(CONFIG_IPV6_SIT) && !defined(CONFIG_IPV6_SIT_MODULE) && \
+    !defined(CONFIG_IPV6_TUNNEL) && !defined(CONFIG_IPV6_TUNNEL_MODULE)
 #define MAX_HEADER LL_MAX_HEADER
 #else
 #define MAX_HEADER (LL_MAX_HEADER + 48)
 #define MAX_HEADER LL_MAX_HEADER
 #else
 #define MAX_HEADER (LL_MAX_HEADER + 48)