Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
authorDavid S. Miller <davem@davemloft.net>
Wed, 24 Dec 2008 01:56:23 +0000 (17:56 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 24 Dec 2008 01:56:23 +0000 (17:56 -0800)
Conflicts:

drivers/net/ppp_generic.c

1  2 
drivers/net/bnx2.c
drivers/net/jme.h
drivers/net/phy/mdio_bus.c
drivers/net/ppp_generic.c
drivers/net/starfire.c
net/bluetooth/rfcomm/core.c
net/socket.c

Simple merge
Simple merge
Simple merge
index c832d600d1e8829b72faddd095dfa513e03d03e0,714a23035de1980a968c19a835712d587c007c17..06b448285eb5d0783c104383c12b0e4add6309ea
@@@ -2484,19 -2498,17 +2484,17 @@@ init_ppp_file(struct ppp_file *pf, int 
   */
  static void ppp_shutdown_interface(struct ppp *ppp)
  {
-       struct net_device *dev;
        mutex_lock(&all_ppp_mutex);
-       ppp_lock(ppp);
-       dev = ppp->dev;
-       ppp->dev = NULL;
-       ppp_unlock(ppp);
        /* This will call dev_close() for us. */
-       if (dev) {
-               unregister_netdev(dev);
-               free_netdev(dev);
-       }
+       ppp_lock(ppp);
+       if (!ppp->closing) {
+               ppp->closing = 1;
+               ppp_unlock(ppp);
+               unregister_netdev(ppp->dev);
+       } else
+               ppp_unlock(ppp);
 -      cardmap_set(&all_ppp_units, ppp->file.index, NULL);
 +      unit_put(&ppp_units_idr, ppp->file.index);
        ppp->file.dead = 1;
        ppp->owner = NULL;
        wake_up_interruptible(&ppp->file.rwait);
Simple merge
Simple merge
diff --cc net/socket.c
Simple merge