diff options
author | Patrick McHardy <kaber@trash.net> | 2005-10-29 08:31:39 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-10-29 14:17:05 -0400 |
commit | e71180f3689e00c5a1095925352a72dacdd62e34 (patch) | |
tree | dc60596c2ea85b8f9f47a1c3af3c3da4041e3225 /drivers/net/wireless/prism54 | |
parent | eef55ac7bf16669cb022db30143d0a6d8cb1f5e6 (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/wireless/prism54')
-rw-r--r-- | drivers/net/wireless/prism54/islpci_eth.c | 6 |
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 | ||