aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/8139cp.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-01-22 11:31:11 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-01-22 11:31:11 -0800
commit19e805cb040a81dcfbcf2aa8dbe5d9454c5faf2d (patch)
treee5f75873ebe7a019ce6b2bd493031d8fcf7fcf00 /drivers/net/8139cp.c
parentab1127823b757ec945a048c3385eb1f99a459823 (diff)
parent7939aae0c08412138a827e0af6f16fc19c346353 (diff)
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: sis190: failure to set the MAC address from EEPROM Fix phy_read/write redefinition errors in ucc_geth_phy.c Update ucc_geth.c for new workqueue structure myri10ge: update driver version to 1.2.0 myri10ge: check that we can get an irq myri10ge: make wc_fifo usage load-time tunable 8139cp: Don't blindly enable interrupts [PATCH] bcm43xx: Fix failure to deliver PCI-E interrupts
Diffstat (limited to 'drivers/net/8139cp.c')
-rw-r--r--drivers/net/8139cp.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c
index e2cb19b582a..6f93a765e56 100644
--- a/drivers/net/8139cp.c
+++ b/drivers/net/8139cp.c
@@ -765,17 +765,18 @@ static int cp_start_xmit (struct sk_buff *skb, struct net_device *dev)
struct cp_private *cp = netdev_priv(dev);
unsigned entry;
u32 eor, flags;
+ unsigned long intr_flags;
#if CP_VLAN_TAG_USED
u32 vlan_tag = 0;
#endif
int mss = 0;
- spin_lock_irq(&cp->lock);
+ spin_lock_irqsave(&cp->lock, intr_flags);
/* This is a hard error, log it. */
if (TX_BUFFS_AVAIL(cp) <= (skb_shinfo(skb)->nr_frags + 1)) {
netif_stop_queue(dev);
- spin_unlock_irq(&cp->lock);
+ spin_unlock_irqrestore(&cp->lock, intr_flags);
printk(KERN_ERR PFX "%s: BUG! Tx Ring full when queue awake!\n",
dev->name);
return 1;
@@ -908,7 +909,7 @@ static int cp_start_xmit (struct sk_buff *skb, struct net_device *dev)
if (TX_BUFFS_AVAIL(cp) <= (MAX_SKB_FRAGS + 1))
netif_stop_queue(dev);
- spin_unlock_irq(&cp->lock);
+ spin_unlock_irqrestore(&cp->lock, intr_flags);
cpw8(TxPoll, NormalTxPoll);
dev->trans_start = jiffies;