aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/fs_enet/fs_enet-main.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
index f9079599dd22..83c9bf27ecfd 100644
--- a/drivers/net/fs_enet/fs_enet-main.c
+++ b/drivers/net/fs_enet/fs_enet-main.c
@@ -335,7 +335,7 @@ static void fs_enet_tx(struct net_device *dev)
335 int dirtyidx, do_wake, do_restart; 335 int dirtyidx, do_wake, do_restart;
336 u16 sc; 336 u16 sc;
337 337
338 spin_lock(&fep->lock); 338 spin_lock(&fep->tx_lock);
339 bdp = fep->dirty_tx; 339 bdp = fep->dirty_tx;
340 340
341 do_wake = do_restart = 0; 341 do_wake = do_restart = 0;
@@ -415,7 +415,7 @@ static void fs_enet_tx(struct net_device *dev)
415 if (do_restart) 415 if (do_restart)
416 (*fep->ops->tx_restart)(dev); 416 (*fep->ops->tx_restart)(dev);
417 417
418 spin_unlock(&fep->lock); 418 spin_unlock(&fep->tx_lock);
419 419
420 if (do_wake) 420 if (do_wake)
421 netif_wake_queue(dev); 421 netif_wake_queue(dev);
@@ -818,7 +818,9 @@ static int fs_enet_close(struct net_device *dev)
818 phy_stop(fep->phydev); 818 phy_stop(fep->phydev);
819 819
820 spin_lock_irqsave(&fep->lock, flags); 820 spin_lock_irqsave(&fep->lock, flags);
821 spin_lock(&fep->tx_lock);
821 (*fep->ops->stop)(dev); 822 (*fep->ops->stop)(dev);
823 spin_unlock(&fep->tx_lock);
822 spin_unlock_irqrestore(&fep->lock, flags); 824 spin_unlock_irqrestore(&fep->lock, flags);
823 825
824 /* release any irqs */ 826 /* release any irqs */