Search Linux Wireless

[PATCH] zd1211rw-mac80211: fixed freeing skbs in interrupt context

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Ulrich Kunitz <kune@xxxxxxxxxxxxxx>

Some of the kfree_skb() calls could happen in irq context.
Changed all calls to dev_kfree_skb() in non-irq context and to
dev_kfree_skb_any() where an irq context might happen.

Signed-off-by: Ulrich Kunitz <kune@xxxxxxxxxxxxxx>
Signed-off-by: Daniel Drake <dsd@xxxxxxxxxx>
---
 drivers/net/wireless/mac80211/zd1211rw/zd_mac.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/mac80211/zd1211rw/zd_mac.c b/drivers/net/wireless/mac80211/zd1211rw/zd_mac.c
index cd5d17f..91b908a 100644
--- a/drivers/net/wireless/mac80211/zd1211rw/zd_mac.c
+++ b/drivers/net/wireless/mac80211/zd1211rw/zd_mac.c
@@ -160,7 +160,7 @@ static int zd_mac_stop(struct ieee80211_hw *dev)
 		struct ieee80211_tx_control *control =
 			*(struct ieee80211_tx_control **)skb->cb;
 		kfree(control);
-		kfree_skb(skb);
+		dev_kfree_skb(skb);
 	}
 
 	return 0;
@@ -319,7 +319,7 @@ static int zd_mac_tx(struct ieee80211_hw *dev, struct sk_buff *skb,
 		return r;
 
 	if (control->flags & IEEE80211_TXCTL_NO_ACK) {
-		kfree_skb(skb);
+		dev_kfree_skb(skb);
 		return 0;
 	}
 
@@ -350,7 +350,7 @@ void zd_mac_tx_failed(struct ieee80211_hw *dev)
 		ieee80211_tx_status_irqsafe(dev, skb, &status);
 		kfree(control);
 	} else
-		kfree_skb(skb);
+		dev_kfree_skb_any(skb);
 
 	return;
 }
@@ -457,7 +457,7 @@ static int filter_ack(struct ieee80211_hw *dev, struct ieee80211_hdr *rx_hdr,
 		ieee80211_tx_status_irqsafe(dev, skb, &status);
 		kfree(control);
 	} else
-		kfree_skb(skb);
+		dev_kfree_skb_any(skb);
 
 	return 1;
 }
-- 
1.5.1.2

-
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux