title: free_netdev and locking
body: <p>is it required to unlock net_device structure before calling free_netdev? The code I encountered does the following:</p>
  
  <pre><code>static void delete_dev(struct net_device *dev)
  {
     ASSERT_RTNL();
     ...
     unregister_netdevice(dev);
     ...
     rtnl_unlock();
     free_netdev(dev);
     rtnl_lock();
  }
  
  int foo()
  {
     struct net_device *dev;
  
     rtnl_lock();
     ...
     delete_dev(dev);
     rtnl_unlock();
     return 0;
  }
  </code></pre>
  
  <p>Is this the right way to do the things? Thanks.</p>