diff options
Diffstat (limited to 'drivers/net/wireless/b43/dma.c')
-rw-r--r-- | drivers/net/wireless/b43/dma.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/wireless/b43/dma.c b/drivers/net/wireless/b43/dma.c index 777cd74921d7..38bc5a7997ff 100644 --- a/drivers/net/wireless/b43/dma.c +++ b/drivers/net/wireless/b43/dma.c | |||
@@ -409,7 +409,10 @@ static inline | |||
409 | struct b43_dmadesc_meta *meta) | 409 | struct b43_dmadesc_meta *meta) |
410 | { | 410 | { |
411 | if (meta->skb) { | 411 | if (meta->skb) { |
412 | dev_kfree_skb_any(meta->skb); | 412 | if (ring->tx) |
413 | ieee80211_free_txskb(ring->dev->wl->hw, meta->skb); | ||
414 | else | ||
415 | dev_kfree_skb_any(meta->skb); | ||
413 | meta->skb = NULL; | 416 | meta->skb = NULL; |
414 | } | 417 | } |
415 | } | 418 | } |
@@ -1454,7 +1457,7 @@ int b43_dma_tx(struct b43_wldev *dev, struct sk_buff *skb) | |||
1454 | if (unlikely(err == -ENOKEY)) { | 1457 | if (unlikely(err == -ENOKEY)) { |
1455 | /* Drop this packet, as we don't have the encryption key | 1458 | /* Drop this packet, as we don't have the encryption key |
1456 | * anymore and must not transmit it unencrypted. */ | 1459 | * anymore and must not transmit it unencrypted. */ |
1457 | dev_kfree_skb_any(skb); | 1460 | ieee80211_free_txskb(dev->wl->hw, skb); |
1458 | err = 0; | 1461 | err = 0; |
1459 | goto out; | 1462 | goto out; |
1460 | } | 1463 | } |