diff options
| -rw-r--r-- | drivers/net/8139cp.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c index e2cb19b582a1..6f93a765e564 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) | |||
| 765 | struct cp_private *cp = netdev_priv(dev); | 765 | struct cp_private *cp = netdev_priv(dev); |
| 766 | unsigned entry; | 766 | unsigned entry; |
| 767 | u32 eor, flags; | 767 | u32 eor, flags; |
| 768 | unsigned long intr_flags; | ||
| 768 | #if CP_VLAN_TAG_USED | 769 | #if CP_VLAN_TAG_USED |
| 769 | u32 vlan_tag = 0; | 770 | u32 vlan_tag = 0; |
| 770 | #endif | 771 | #endif |
| 771 | int mss = 0; | 772 | int mss = 0; |
| 772 | 773 | ||
| 773 | spin_lock_irq(&cp->lock); | 774 | spin_lock_irqsave(&cp->lock, intr_flags); |
| 774 | 775 | ||
| 775 | /* This is a hard error, log it. */ | 776 | /* This is a hard error, log it. */ |
| 776 | if (TX_BUFFS_AVAIL(cp) <= (skb_shinfo(skb)->nr_frags + 1)) { | 777 | if (TX_BUFFS_AVAIL(cp) <= (skb_shinfo(skb)->nr_frags + 1)) { |
| 777 | netif_stop_queue(dev); | 778 | netif_stop_queue(dev); |
| 778 | spin_unlock_irq(&cp->lock); | 779 | spin_unlock_irqrestore(&cp->lock, intr_flags); |
| 779 | printk(KERN_ERR PFX "%s: BUG! Tx Ring full when queue awake!\n", | 780 | printk(KERN_ERR PFX "%s: BUG! Tx Ring full when queue awake!\n", |
| 780 | dev->name); | 781 | dev->name); |
| 781 | return 1; | 782 | return 1; |
| @@ -908,7 +909,7 @@ static int cp_start_xmit (struct sk_buff *skb, struct net_device *dev) | |||
| 908 | if (TX_BUFFS_AVAIL(cp) <= (MAX_SKB_FRAGS + 1)) | 909 | if (TX_BUFFS_AVAIL(cp) <= (MAX_SKB_FRAGS + 1)) |
| 909 | netif_stop_queue(dev); | 910 | netif_stop_queue(dev); |
| 910 | 911 | ||
| 911 | spin_unlock_irq(&cp->lock); | 912 | spin_unlock_irqrestore(&cp->lock, intr_flags); |
| 912 | 913 | ||
| 913 | cpw8(TxPoll, NormalTxPoll); | 914 | cpw8(TxPoll, NormalTxPoll); |
| 914 | dev->trans_start = jiffies; | 915 | dev->trans_start = jiffies; |
