]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ipv4/ipmr.c
[TCP]: Return useful listenq info in tcp_info and INET_DIAG_INFO.
[linux-2.6-omap-h63xx.git] / net / ipv4 / ipmr.c
index 35683e1a42e8e884b3e23f66389740297f6e8c0d..b8b4b497fb57309a3321960dd5d913542ed3e3cd 100644 (file)
@@ -125,7 +125,7 @@ struct net_device *ipmr_new_tunnel(struct vifctl *v)
 {
        struct net_device  *dev;
 
-       dev = __dev_get_by_name("tunl0");
+       dev = __dev_get_by_name(&init_net, "tunl0");
 
        if (dev) {
                int err;
@@ -149,7 +149,7 @@ struct net_device *ipmr_new_tunnel(struct vifctl *v)
 
                dev = NULL;
 
-               if (err == 0 && (dev = __dev_get_by_name(p.name)) != NULL) {
+               if (err == 0 && (dev = __dev_get_by_name(&init_net, p.name)) != NULL) {
                        dev->flags |= IFF_MULTICAST;
 
                        in_dev = __in_dev_get_rtnl(dev);
@@ -1083,13 +1083,18 @@ int ipmr_ioctl(struct sock *sk, int cmd, void __user *arg)
 
 static int ipmr_device_event(struct notifier_block *this, unsigned long event, void *ptr)
 {
+       struct net_device *dev = ptr;
        struct vif_device *v;
        int ct;
+
+       if (dev->nd_net != &init_net)
+               return NOTIFY_DONE;
+
        if (event != NETDEV_UNREGISTER)
                return NOTIFY_DONE;
        v=&vif_table[0];
        for (ct=0;ct<maxvif;ct++,v++) {
-               if (v->dev==ptr)
+               if (v->dev==dev)
                        vif_delete(ct);
        }
        return NOTIFY_DONE;