diff options
Diffstat (limited to 'drivers/net/fs_enet/fs_enet-main.c')
-rw-r--r-- | drivers/net/fs_enet/fs_enet-main.c | 6 |
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 */ |