|
@@ -3378,12 +3378,9 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
|
|
(adapter->hw.mac_type == e1000_82573))
|
|
(adapter->hw.mac_type == e1000_82573))
|
|
e1000_transfer_dhcp_info(adapter, skb);
|
|
e1000_transfer_dhcp_info(adapter, skb);
|
|
|
|
|
|
- local_irq_save(flags);
|
|
|
|
- if (!spin_trylock(&tx_ring->tx_lock)) {
|
|
|
|
|
|
+ if (!spin_trylock_irqsave(&tx_ring->tx_lock, flags))
|
|
/* Collision - tell upper layer to requeue */
|
|
/* Collision - tell upper layer to requeue */
|
|
- local_irq_restore(flags);
|
|
|
|
return NETDEV_TX_LOCKED;
|
|
return NETDEV_TX_LOCKED;
|
|
- }
|
|
|
|
|
|
|
|
/* need: count + 2 desc gap to keep tail from touching
|
|
/* need: count + 2 desc gap to keep tail from touching
|
|
* head, otherwise try next time */
|
|
* head, otherwise try next time */
|