net: stmmac: The netif_device_attach() should be called after napi_enable()
authorDavid Wu <david.wu@rock-chips.com>
Fri, 28 Apr 2017 09:41:43 +0000 (17:41 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Tue, 9 May 2017 12:10:19 +0000 (20:10 +0800)
If the netif_device_attach() is called earlier, the state of dev_queue is
waked, txtimer might be modified, and the txtimer is added at same time.
It might make run_timer_softirq crashed, because the timer is be detached
twice together.

Change-Id: I31dde4e940bddcc36372ca1f4a8313c0389d4e6b
Signed-off-by: David Wu <david.wu@rock-chips.com>
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

index 9c2daa87b6d5f0f01deef024877a2d7a4cafc945..e2305197ad49645874b2ba9e2a1fb7bae1181769 100644 (file)
@@ -3110,8 +3110,6 @@ int stmmac_resume(struct net_device *ndev)
                        stmmac_mdio_reset(priv->mii);
        }
 
-       netif_device_attach(ndev);
-
        spin_lock_irqsave(&priv->lock, flags);
 
        priv->cur_rx = 0;
@@ -3128,6 +3126,8 @@ int stmmac_resume(struct net_device *ndev)
 
        netif_start_queue(ndev);
 
+       netif_device_attach(ndev);
+
        spin_unlock_irqrestore(&priv->lock, flags);
 
        if (priv->phydev)