aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennert Buytenhek <buytenh@wantstofly.org>2008-08-23 20:30:42 -0400
committerLennert Buytenhek <buytenh@marvell.com>2008-08-23 21:33:16 -0400
commit8e0b1bf6ac6c4c6dd985e586cd765aede4678bba (patch)
treef54c0f17522fab635509b383220298193ee2a575
parent92c70f27d2a78873c940e77c7f075cd8e2e60a2d (diff)
mv643xx_eth: fix inconsistent lock semantics
Nicolas Pitre noted that mv643xx_eth_poll was incorrectly using non-IRQ-safe locks while checking whether to wake up the netdevice's transmit queue. Convert the locking to *_irq() variants, since we are running from softirq context where interrupts are enabled. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
-rw-r--r--drivers/net/mv643xx_eth.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index 8a91d79383dd..30e6d4b8d564 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -634,9 +634,9 @@ static int mv643xx_eth_poll(struct napi_struct *napi, int budget)
634 txq_reclaim(mp->txq + i, 0); 634 txq_reclaim(mp->txq + i, 0);
635 635
636 if (netif_carrier_ok(mp->dev)) { 636 if (netif_carrier_ok(mp->dev)) {
637 spin_lock(&mp->lock); 637 spin_lock_irq(&mp->lock);
638 __txq_maybe_wake(mp->txq + mp->txq_primary); 638 __txq_maybe_wake(mp->txq + mp->txq_primary);
639 spin_unlock(&mp->lock); 639 spin_unlock_irq(&mp->lock);
640 } 640 }
641 } 641 }
642#endif 642#endif