diff options
author | Lennert Buytenhek <buytenh@wantstofly.org> | 2008-08-23 20:30:42 -0400 |
---|---|---|
committer | Lennert Buytenhek <buytenh@marvell.com> | 2008-08-23 21:33:16 -0400 |
commit | 8e0b1bf6ac6c4c6dd985e586cd765aede4678bba (patch) | |
tree | f54c0f17522fab635509b383220298193ee2a575 /drivers/net/mv643xx_eth.c | |
parent | 92c70f27d2a78873c940e77c7f075cd8e2e60a2d (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>
Diffstat (limited to 'drivers/net/mv643xx_eth.c')
-rw-r--r-- | drivers/net/mv643xx_eth.c | 4 |
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 |