[PATCH] prism54: Free skb after disabling interrupts
Patrick McHardy [Sat, 29 Oct 2005 12:31:39 +0000 (13:31 +0100)]
The dev_kfree_skb in islpci_eth_transmit happens while irqs are still
disabled, so either dev_kfree_skb_irq needs to be used or the skb
needs to be freed after irqs have been enabled again. This patch
should fix it.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

drivers/net/wireless/prism54/islpci_eth.c

index 0975dd4..3b49efa 100644 (file)
@@ -241,12 +241,10 @@ islpci_eth_transmit(struct sk_buff *skb, struct net_device *ndev)
        return 0;
 
       drop_free:
-       /* free the skbuf structure before aborting */
-       dev_kfree_skb(skb);
-       skb = NULL;
-
        priv->statistics.tx_dropped++;
        spin_unlock_irqrestore(&priv->slock, flags);
+       dev_kfree_skb(skb);
+       skb = NULL;
        return err;
 }