]> err.no Git - linux-2.6/commitdiff
[PATCH] prism54: Free skb after disabling interrupts
authorPatrick McHardy <kaber@trash.net>
Sat, 29 Oct 2005 12:31:39 +0000 (13:31 +0100)
committerJeff Garzik <jgarzik@pobox.com>
Sat, 29 Oct 2005 18:17:05 +0000 (14:17 -0400)
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 0975dd4ed77d1008d99487fa4f14265d0c446f68..3b49efa37ee56050f3294304ad0ce0c8dd539d59 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;
 }