ppriv = netdev_priv(pdev);
 
+       rtnl_lock();
        mutex_lock(&ppriv->vlan_mutex);
 
        /*
                goto device_init_failed;
        }
 
-       result = register_netdev(priv->dev);
+       result = register_netdevice(priv->dev);
        if (result) {
                ipoib_warn(priv, "failed to initialize; error %i", result);
                goto register_failed;
        list_add_tail(&priv->list, &ppriv->child_intfs);
 
        mutex_unlock(&ppriv->vlan_mutex);
+       rtnl_unlock();
 
        return 0;
 
 sysfs_failed:
        ipoib_delete_debug_files(priv->dev);
-       unregister_netdev(priv->dev);
+       unregister_netdevice(priv->dev);
 
 register_failed:
        ipoib_dev_cleanup(priv->dev);
 
 err:
        mutex_unlock(&ppriv->vlan_mutex);
+       rtnl_unlock();
        return result;
 }
 
 
        ppriv = netdev_priv(pdev);
 
+       rtnl_lock();
        mutex_lock(&ppriv->vlan_mutex);
        list_for_each_entry_safe(priv, tpriv, &ppriv->child_intfs, list) {
                if (priv->pkey == pkey) {
-                       unregister_netdev(priv->dev);
+                       unregister_netdevice(priv->dev);
                        ipoib_dev_cleanup(priv->dev);
                        list_del(&priv->list);
                        free_netdev(priv->dev);
                }
        }
        mutex_unlock(&ppriv->vlan_mutex);
+       rtnl_unlock();
 
        return ret;
 }