]> git.hungrycats.org Git - linux/commitdiff
[PATCH] 3c574_cs fixes
authorAndrew Morton <akpm@digeo.com>
Sun, 20 Apr 2003 07:25:47 +0000 (00:25 -0700)
committerLinus Torvalds <torvalds@home.transmeta.com>
Sun, 20 Apr 2003 07:25:47 +0000 (00:25 -0700)
- It was doing spin_lock_irqsave()/spin_unlock()

- Can't free the skb inside local_irq_save(): kfree_skb ends up running
  local_bh_enable(), which enables interrupts.

drivers/net/pcmcia/3c574_cs.c

index 9a0727a4b120332e9e553916254a6a8be8345903..ae13b70c367af8c9de459559f0b70a0083f380ce 100644 (file)
@@ -940,11 +940,9 @@ static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev)
                outw(SetTxThreshold + (1536>>2), ioaddr + EL3_CMD);
        }
 
-       dev_kfree_skb (skb);
        pop_tx_status(dev);
-
-       spin_unlock(&lp->window_lock);
-       
+       spin_unlock_irqrestore(&lp->window_lock, flags);
+       dev_kfree_skb(skb);
        return 0;
 }