summaryrefslogtreecommitdiff
path: root/drivers/net/isa-skeleton.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/isa-skeleton.c')
-rw-r--r--drivers/net/isa-skeleton.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/isa-skeleton.c b/drivers/net/isa-skeleton.c
index 86d2300af379..9706e64e367b 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)
* hardware interrupt handler. Queue flow control is
* thus managed under this lock as well.
*/
- spin_lock_irq(&np->lock);
+ unsigned long flags;
+ spin_lock_irqsave(&np->lock, flags);
add_to_tx_ring(np, skb, length);
dev->trans_start = jiffies;
@@ -446,7 +447,7 @@ static int net_send_packet(struct sk_buff *skb, struct net_device *dev)
* is when the transmit statistics are updated.
*/
- spin_unlock_irq(&np->lock);
+ spin_unlock_irqrestore(&np->lock, flags);
#else
/* This is the case for older hardware which takes
* a single transmit buffer at a time, and it is