gre: do not assign header_ops in collect metadata mode
[deliverable/linux.git] / net / ipv4 / ip_gre.c
index af5d1f38217f4e4dcb977b6410d0d9a6a6c1e87c..d0abde4236af48ce1b655d12da71303f36da1e02 100644 (file)
@@ -893,7 +893,7 @@ static int ipgre_tunnel_init(struct net_device *dev)
        netif_keep_dst(dev);
        dev->addr_len           = 4;
 
-       if (iph->daddr) {
+       if (iph->daddr && !tunnel->collect_md) {
 #ifdef CONFIG_NET_IPGRE_BROADCAST
                if (ipv4_is_multicast(iph->daddr)) {
                        if (!iph->saddr)
@@ -902,8 +902,9 @@ static int ipgre_tunnel_init(struct net_device *dev)
                        dev->header_ops = &ipgre_header_ops;
                }
 #endif
-       } else
+       } else if (!tunnel->collect_md) {
                dev->header_ops = &ipgre_header_ops;
+       }
 
        return ip_tunnel_init(dev);
 }
This page took 0.02438 seconds and 5 git commands to generate.