aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2005-10-29 08:31:39 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-10-29 14:17:05 -0400
commite71180f3689e00c5a1095925352a72dacdd62e34 (patch)
treedc60596c2ea85b8f9f47a1c3af3c3da4041e3225 /drivers/net
parenteef55ac7bf16669cb022db30143d0a6d8cb1f5e6 (diff)
[PATCH] prism54: Free skb after disabling interrupts
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>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/prism54/islpci_eth.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/net/wireless/prism54/islpci_eth.c b/drivers/net/wireless/prism54/islpci_eth.c
index 0975dd4ed77d..3b49efa37ee5 100644
--- a/drivers/net/wireless/prism54/islpci_eth.c
+++ b/drivers/net/wireless/prism54/islpci_eth.c
@@ -241,12 +241,10 @@ islpci_eth_transmit(struct sk_buff *skb, struct net_device *ndev)
241 return 0; 241 return 0;
242 242
243 drop_free: 243 drop_free:
244 /* free the skbuf structure before aborting */
245 dev_kfree_skb(skb);
246 skb = NULL;
247
248 priv->statistics.tx_dropped++; 244 priv->statistics.tx_dropped++;
249 spin_unlock_irqrestore(&priv->slock, flags); 245 spin_unlock_irqrestore(&priv->slock, flags);
246 dev_kfree_skb(skb);
247 skb = NULL;
250 return err; 248 return err;
251} 249}
252 250