summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/b43/pio.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2012-12-10 20:40:21 +0400
committerJohn W. Linville <linville@tuxdriver.com>2012-12-11 00:49:59 +0400
commit78f18df4b323d2ac14d6c82e2fc3c8dc4556bccc (patch)
treee34db528fb48b4e4f1d6d5adc9f07994c95380af /drivers/net/wireless/b43/pio.c
parent596ab5ec3bf10a22be30d7cb1d903a4b83fd607c (diff)
downloadlinux-78f18df4b323d2ac14d6c82e2fc3c8dc4556bccc.tar.xz
b43: fix tx path skb leaks
ieee80211_free_txskb() needs to be used instead of dev_kfree_skb_any for tx packets passed to the driver from mac80211 Signed-off-by: Felix Fietkau <nbd@openwrt.org> Cc: stable@vger.kernel.org Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/b43/pio.c')
-rw-r--r--drivers/net/wireless/b43/pio.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/b43/pio.c b/drivers/net/wireless/b43/pio.c
index 3533ab86bd36..a73ff8c9deb5 100644
--- a/drivers/net/wireless/b43/pio.c
+++ b/drivers/net/wireless/b43/pio.c
@@ -196,7 +196,7 @@ static void b43_pio_cancel_tx_packets(struct b43_pio_txqueue *q)
for (i = 0; i < ARRAY_SIZE(q->packets); i++) {
pack = &(q->packets[i]);
if (pack->skb) {
- dev_kfree_skb_any(pack->skb);
+ ieee80211_free_txskb(q->dev->wl->hw, pack->skb);
pack->skb = NULL;
}
}
@@ -552,7 +552,7 @@ int b43_pio_tx(struct b43_wldev *dev, struct sk_buff *skb)
if (unlikely(err == -ENOKEY)) {
/* Drop this packet, as we don't have the encryption key
* anymore and must not transmit it unencrypted. */
- dev_kfree_skb_any(skb);
+ ieee80211_free_txskb(dev->wl->hw, skb);
err = 0;
goto out;
}