diff options
| -rw-r--r-- | drivers/net/cs89x0.c | 7 | ||||
| -rw-r--r-- | drivers/net/isa-skeleton.c | 5 |
2 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c index 3eee666a9cd2..55445f980f9c 100644 --- a/drivers/net/cs89x0.c +++ b/drivers/net/cs89x0.c | |||
| @@ -1524,6 +1524,7 @@ static void net_timeout(struct net_device *dev) | |||
| 1524 | static int net_send_packet(struct sk_buff *skb, struct net_device *dev) | 1524 | static int net_send_packet(struct sk_buff *skb, struct net_device *dev) |
| 1525 | { | 1525 | { |
| 1526 | struct net_local *lp = netdev_priv(dev); | 1526 | struct net_local *lp = netdev_priv(dev); |
| 1527 | unsigned long flags; | ||
| 1527 | 1528 | ||
| 1528 | if (net_debug > 3) { | 1529 | if (net_debug > 3) { |
| 1529 | printk("%s: sent %d byte packet of type %x\n", | 1530 | printk("%s: sent %d byte packet of type %x\n", |
| @@ -1535,7 +1536,7 @@ static int net_send_packet(struct sk_buff *skb, struct net_device *dev) | |||
| 1535 | ask the chip to start transmitting before the | 1536 | ask the chip to start transmitting before the |
| 1536 | whole packet has been completely uploaded. */ | 1537 | whole packet has been completely uploaded. */ |
| 1537 | 1538 | ||
| 1538 | spin_lock_irq(&lp->lock); | 1539 | spin_lock_irqsave(&lp->lock, flags); |
| 1539 | netif_stop_queue(dev); | 1540 | netif_stop_queue(dev); |
| 1540 | 1541 | ||
| 1541 | /* initiate a transmit sequence */ | 1542 | /* initiate a transmit sequence */ |
| @@ -1549,13 +1550,13 @@ static int net_send_packet(struct sk_buff *skb, struct net_device *dev) | |||
| 1549 | * we're waiting for TxOk, so return 1 and requeue this packet. | 1550 | * we're waiting for TxOk, so return 1 and requeue this packet. |
| 1550 | */ | 1551 | */ |
| 1551 | 1552 | ||
| 1552 | spin_unlock_irq(&lp->lock); | 1553 | spin_unlock_irqrestore(&lp->lock, flags); |
| 1553 | if (net_debug) printk("cs89x0: Tx buffer not free!\n"); | 1554 | if (net_debug) printk("cs89x0: Tx buffer not free!\n"); |
| 1554 | return NETDEV_TX_BUSY; | 1555 | return NETDEV_TX_BUSY; |
| 1555 | } | 1556 | } |
| 1556 | /* Write the contents of the packet */ | 1557 | /* Write the contents of the packet */ |
| 1557 | writewords(dev->base_addr, TX_FRAME_PORT,skb->data,(skb->len+1) >>1); | 1558 | writewords(dev->base_addr, TX_FRAME_PORT,skb->data,(skb->len+1) >>1); |
| 1558 | spin_unlock_irq(&lp->lock); | 1559 | spin_unlock_irqrestore(&lp->lock, flags); |
| 1559 | lp->stats.tx_bytes += skb->len; | 1560 | lp->stats.tx_bytes += skb->len; |
| 1560 | dev->trans_start = jiffies; | 1561 | dev->trans_start = jiffies; |
| 1561 | dev_kfree_skb (skb); | 1562 | dev_kfree_skb (skb); |
diff --git a/drivers/net/isa-skeleton.c b/drivers/net/isa-skeleton.c index 73585fd8f29f..d12377b84358 100644 --- a/drivers/net/isa-skeleton.c +++ b/drivers/net/isa-skeleton.c | |||
| @@ -430,7 +430,8 @@ static int net_send_packet(struct sk_buff *skb, struct net_device *dev) | |||
| 430 | * hardware interrupt handler. Queue flow control is | 430 | * hardware interrupt handler. Queue flow control is |
| 431 | * thus managed under this lock as well. | 431 | * thus managed under this lock as well. |
| 432 | */ | 432 | */ |
| 433 | spin_lock_irq(&np->lock); | 433 | unsigned long flags; |
| 434 | spin_lock_irqsave(&np->lock, flags); | ||
| 434 | 435 | ||
| 435 | add_to_tx_ring(np, skb, length); | 436 | add_to_tx_ring(np, skb, length); |
| 436 | dev->trans_start = jiffies; | 437 | dev->trans_start = jiffies; |
| @@ -446,7 +447,7 @@ static int net_send_packet(struct sk_buff *skb, struct net_device *dev) | |||
| 446 | * is when the transmit statistics are updated. | 447 | * is when the transmit statistics are updated. |
| 447 | */ | 448 | */ |
| 448 | 449 | ||
| 449 | spin_unlock_irq(&np->lock); | 450 | spin_unlock_irqrestore(&np->lock, flags); |
| 450 | #else | 451 | #else |
| 451 | /* This is the case for older hardware which takes | 452 | /* This is the case for older hardware which takes |
| 452 | * a single transmit buffer at a time, and it is | 453 | * a single transmit buffer at a time, and it is |
