]> Pileus Git - ~andy/linux/blobdiff - net/ipv4/ip_gre.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
[~andy/linux] / net / ipv4 / ip_gre.c
index aa973812edc161d30ba8d9d40b5372aab8c465e5..2ada033406de08b6e471287867001a63a33336e2 100644 (file)
@@ -278,6 +278,8 @@ static struct ip_tunnel * ipgre_tunnel_locate(struct net *net,
        if (!dev)
          return NULL;
 
+       dev_net_set(dev, net);
+
        if (strchr(name, '%')) {
                if (dev_alloc_name(dev, name) < 0)
                        goto failed_free;
@@ -1236,6 +1238,7 @@ static void ipgre_tunnel_setup(struct net_device *dev)
        dev->flags              = IFF_NOARP;
        dev->iflink             = 0;
        dev->addr_len           = 4;
+       dev->features           |= NETIF_F_NETNS_LOCAL;
 }
 
 static int ipgre_tunnel_init(struct net_device *dev)
@@ -1294,6 +1297,7 @@ static int ipgre_fb_tunnel_init(struct net_device *dev)
 static struct net_protocol ipgre_protocol = {
        .handler        =       ipgre_rcv,
        .err_handler    =       ipgre_err,
+       .netns_ok       =       1,
 };
 
 static void ipgre_destroy_tunnels(struct ipgre_net *ign)