[mcs814x] nuport-mac: close possible race condition during start
authorflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 8 Aug 2012 21:51:13 +0000 (21:51 +0000)
committerflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 8 Aug 2012 21:51:13 +0000 (21:51 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33069 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/mcs814x/files-3.3/drivers/net/ethernet/mcs8140/nuport_mac.c

index ebf95a6..8cd3d0e 100644 (file)
@@ -809,7 +809,11 @@ static int nuport_mac_open(struct net_device *dev)
        nuport_mac_reset_rx_dma(priv);
 
        /* Start RX DMA */
-       return nuport_mac_start_rx_dma(priv, priv->rx_skb[0]);
+       spin_lock_irqsave(&priv->lock, flags);
+       ret = nuport_mac_start_rx_dma(priv, priv->rx_skb[0]);
+       spin_unlock_irqrestore(&priv->lock, flags);
+
+       return ret;
 
 out_rx_skb:
        nuport_mac_free_rx_ring(priv);