summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2011-11-04 14:18:10 +0400
committerJohn W. Linville <linville@tuxdriver.com>2011-11-10 01:05:48 +0400
commit6096de7fd4eeda305e114e7d74e6f47404590425 (patch)
treed1593ce73555299a8b209840f2db7437b9c94cc4
parentd0ce1855eab098c6257f1321b02b70f916064aaa (diff)
downloadlinux-6096de7fd4eeda305e114e7d74e6f47404590425.tar.xz
mac80211: add helper to free TX skb
Drivers that need to drop a frame before it can be transmitted will usually simply free that frame. This is currently fine, but in the future it'll be needed to tell mac80211 about this case, so add a new routine that frees a TX skb. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--include/net/mac80211.h10
-rw-r--r--net/mac80211/status.c6
2 files changed, 16 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index eddf49202c50..b9b9c9452131 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1309,6 +1309,16 @@ ieee80211_get_alt_retry_rate(const struct ieee80211_hw *hw,
}
/**
+ * ieee80211_free_txskb - free TX skb
+ * @hw: the hardware
+ * @skb: the skb
+ *
+ * Free a transmit skb. Use this funtion when some failure
+ * to transmit happened and thus status cannot be reported.
+ */
+void ieee80211_free_txskb(struct ieee80211_hw *hw, struct sk_buff *skb);
+
+/**
* DOC: Hardware crypto acceleration
*
* mac80211 is capable of taking advantage of many hardware
diff --git a/net/mac80211/status.c b/net/mac80211/status.c
index df643cedf9b9..e1f69545974a 100644
--- a/net/mac80211/status.c
+++ b/net/mac80211/status.c
@@ -609,3 +609,9 @@ void ieee80211_report_low_ack(struct ieee80211_sta *pubsta, u32 num_packets)
num_packets, GFP_ATOMIC);
}
EXPORT_SYMBOL(ieee80211_report_low_ack);
+
+void ieee80211_free_txskb(struct ieee80211_hw *hw, struct sk_buff *skb)
+{
+ dev_kfree_skb_any(skb);
+}
+EXPORT_SYMBOL(ieee80211_free_txskb);