vxlan->age_timer.data = (unsigned long) vxlan;
 
        vxlan->dev = dev;
-       vxlan->net = dev_net(dev);
 
        gro_cells_init(&vxlan->gro_cells, dev);
 
 
 static void vxlan_config_apply(struct net_device *dev,
                               struct vxlan_config *conf,
-                              struct net_device *lowerdev, bool changelink)
+                              struct net_device *lowerdev,
+                              struct net *src_net,
+                              bool changelink)
 {
        struct vxlan_dev *vxlan = netdev_priv(dev);
        struct vxlan_rdst *dst = &vxlan->default_dst;
 
                if (conf->mtu)
                        dev->mtu = conf->mtu;
+
+               vxlan->net = src_net;
        }
 
        dst->remote_vni = conf->vni;
        if (ret)
                return ret;
 
-       vxlan_config_apply(dev, conf, lowerdev, changelink);
+       vxlan_config_apply(dev, conf, lowerdev, src_net, changelink);
 
        return 0;
 }