diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-08-23 18:04:07 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-08-23 18:04:07 +0900 |
commit | c3144fc46f987413df10e83659f0bf1aad76f79e (patch) | |
tree | a09f3c13c32664a617d3981ae111436c3127ccc3 /drivers/net/via-rhine.c | |
parent | 4f896ffca2b72f4b719746e7fbb0b623252e6ac9 (diff) | |
parent | cc58f597afc63a57bb55ed97c2a72f7405320c93 (diff) |
Merge branches 'sh/hwblk' and 'sh/pm-runtime'
Diffstat (limited to 'drivers/net/via-rhine.c')
-rw-r--r-- | drivers/net/via-rhine.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c index 88c30a58b4b..934f7671650 100644 --- a/drivers/net/via-rhine.c +++ b/drivers/net/via-rhine.c @@ -1218,6 +1218,7 @@ static int rhine_start_tx(struct sk_buff *skb, struct net_device *dev) struct rhine_private *rp = netdev_priv(dev); void __iomem *ioaddr = rp->base; unsigned entry; + unsigned long flags; /* Caution: the write order is important here, set the field with the "ownership" bits last. */ @@ -1261,7 +1262,7 @@ static int rhine_start_tx(struct sk_buff *skb, struct net_device *dev) cpu_to_le32(TXDESC | (skb->len >= ETH_ZLEN ? skb->len : ETH_ZLEN)); /* lock eth irq */ - spin_lock_irq(&rp->lock); + spin_lock_irqsave(&rp->lock, flags); wmb(); rp->tx_ring[entry].tx_status = cpu_to_le32(DescOwn); wmb(); @@ -1280,7 +1281,7 @@ static int rhine_start_tx(struct sk_buff *skb, struct net_device *dev) dev->trans_start = jiffies; - spin_unlock_irq(&rp->lock); + spin_unlock_irqrestore(&rp->lock, flags); if (debug > 4) { printk(KERN_DEBUG "%s: Transmit frame #%d queued in slot %d.\n", |