summaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2014-11-19 20:08:08 +0100
committerJohannes Berg <johannes.berg@intel.com>2014-11-28 15:01:50 +0100
commitf684565e0af43586bfc3e005d173f94b0f902a5d (patch)
treea10257c1c797c058cb5f5ed4a0ac437ea1d3927a /net/mac80211
parentmac80211: minstrel_ht: move aggregation check to .get_rate() (diff)
downloadlinux-f684565e0af43586bfc3e005d173f94b0f902a5d.tar.xz
linux-f684565e0af43586bfc3e005d173f94b0f902a5d.zip
mac80211: add tx_status_noskb to rate_control_ops
This op works like .tx_status, except it does not need access to the skb. This will be used by drivers that cannot match tx status information to specific packets. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/rate.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/mac80211/rate.h b/net/mac80211/rate.h
index 18babe302832..dd25964a300a 100644
--- a/net/mac80211/rate.h
+++ b/net/mac80211/rate.h
@@ -37,11 +37,15 @@ static inline void rate_control_tx_status(struct ieee80211_local *local,
struct rate_control_ref *ref = local->rate_ctrl;
struct ieee80211_sta *ista = &sta->sta;
void *priv_sta = sta->rate_ctrl_priv;
+ struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
if (!ref || !test_sta_flag(sta, WLAN_STA_RATE_CONTROL))
return;
- ref->ops->tx_status(ref->priv, sband, ista, priv_sta, skb);
+ if (ref->ops->tx_status)
+ ref->ops->tx_status(ref->priv, sband, ista, priv_sta, skb);
+ else
+ ref->ops->tx_status_noskb(ref->priv, sband, ista, priv_sta, info);
}