diff options
Diffstat (limited to 'net/mac80211/rate.h')
-rw-r--r-- | net/mac80211/rate.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/net/mac80211/rate.h b/net/mac80211/rate.h index 928da625e281..2ab5ad9e71ce 100644 --- a/net/mac80211/rate.h +++ b/net/mac80211/rate.h | |||
@@ -44,8 +44,10 @@ static inline void rate_control_tx_status(struct ieee80211_local *local, | |||
44 | struct rate_control_ref *ref = local->rate_ctrl; | 44 | struct rate_control_ref *ref = local->rate_ctrl; |
45 | struct ieee80211_sta *ista = &sta->sta; | 45 | struct ieee80211_sta *ista = &sta->sta; |
46 | void *priv_sta = sta->rate_ctrl_priv; | 46 | void *priv_sta = sta->rate_ctrl_priv; |
47 | struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); | ||
47 | 48 | ||
48 | ref->ops->tx_status(ref->priv, sband, ista, priv_sta, skb); | 49 | if (likely(info->flags & IEEE80211_TX_INTFL_RCALGO)) |
50 | ref->ops->tx_status(ref->priv, sband, ista, priv_sta, skb); | ||
49 | } | 51 | } |
50 | 52 | ||
51 | 53 | ||
@@ -62,6 +64,18 @@ static inline void rate_control_rate_init(struct sta_info *sta) | |||
62 | ref->ops->rate_init(ref->priv, sband, ista, priv_sta); | 64 | ref->ops->rate_init(ref->priv, sband, ista, priv_sta); |
63 | } | 65 | } |
64 | 66 | ||
67 | static inline void rate_control_rate_update(struct ieee80211_local *local, | ||
68 | struct ieee80211_supported_band *sband, | ||
69 | struct sta_info *sta, u32 changed) | ||
70 | { | ||
71 | struct rate_control_ref *ref = local->rate_ctrl; | ||
72 | struct ieee80211_sta *ista = &sta->sta; | ||
73 | void *priv_sta = sta->rate_ctrl_priv; | ||
74 | |||
75 | if (ref->ops->rate_update) | ||
76 | ref->ops->rate_update(ref->priv, sband, ista, | ||
77 | priv_sta, changed); | ||
78 | } | ||
65 | 79 | ||
66 | static inline void *rate_control_alloc_sta(struct rate_control_ref *ref, | 80 | static inline void *rate_control_alloc_sta(struct rate_control_ref *ref, |
67 | struct ieee80211_sta *sta, | 81 | struct ieee80211_sta *sta, |