diff options
author | John W. Linville <linville@tuxdriver.com> | 2012-02-29 14:53:21 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-02-29 14:53:21 -0500 |
commit | 8701ff0a88bcfc8c7dced3842919ad8d016a6835 (patch) | |
tree | ba71774b83e92d6507a398024a6d89b146181320 /drivers/net/wireless/ath/carl9170 | |
parent | f4fb4b212d2668f831918023bc3ca451997faee6 (diff) | |
parent | 00f157b49780e194c38dafdf9df8e10b8a6a9626 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
Diffstat (limited to 'drivers/net/wireless/ath/carl9170')
-rw-r--r-- | drivers/net/wireless/ath/carl9170/tx.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/carl9170/tx.c b/drivers/net/wireless/ath/carl9170/tx.c index 771e1a9294c5..0f00721995ef 100644 --- a/drivers/net/wireless/ath/carl9170/tx.c +++ b/drivers/net/wireless/ath/carl9170/tx.c | |||
@@ -1236,6 +1236,7 @@ static bool carl9170_tx_ps_drop(struct ar9170 *ar, struct sk_buff *skb) | |||
1236 | { | 1236 | { |
1237 | struct ieee80211_sta *sta; | 1237 | struct ieee80211_sta *sta; |
1238 | struct carl9170_sta_info *sta_info; | 1238 | struct carl9170_sta_info *sta_info; |
1239 | struct ieee80211_tx_info *tx_info; | ||
1239 | 1240 | ||
1240 | rcu_read_lock(); | 1241 | rcu_read_lock(); |
1241 | sta = __carl9170_get_tx_sta(ar, skb); | 1242 | sta = __carl9170_get_tx_sta(ar, skb); |
@@ -1243,16 +1244,18 @@ static bool carl9170_tx_ps_drop(struct ar9170 *ar, struct sk_buff *skb) | |||
1243 | goto out_rcu; | 1244 | goto out_rcu; |
1244 | 1245 | ||
1245 | sta_info = (void *) sta->drv_priv; | 1246 | sta_info = (void *) sta->drv_priv; |
1246 | if (unlikely(sta_info->sleeping)) { | 1247 | tx_info = IEEE80211_SKB_CB(skb); |
1247 | struct ieee80211_tx_info *tx_info; | ||
1248 | 1248 | ||
1249 | if (unlikely(sta_info->sleeping) && | ||
1250 | !(tx_info->flags & (IEEE80211_TX_CTL_POLL_RESPONSE | | ||
1251 | IEEE80211_TX_CTL_CLEAR_PS_FILT))) { | ||
1249 | rcu_read_unlock(); | 1252 | rcu_read_unlock(); |
1250 | 1253 | ||
1251 | tx_info = IEEE80211_SKB_CB(skb); | ||
1252 | if (tx_info->flags & IEEE80211_TX_CTL_AMPDU) | 1254 | if (tx_info->flags & IEEE80211_TX_CTL_AMPDU) |
1253 | atomic_dec(&ar->tx_ampdu_upload); | 1255 | atomic_dec(&ar->tx_ampdu_upload); |
1254 | 1256 | ||
1255 | tx_info->flags |= IEEE80211_TX_STAT_TX_FILTERED; | 1257 | tx_info->flags |= IEEE80211_TX_STAT_TX_FILTERED; |
1258 | carl9170_release_dev_space(ar, skb); | ||
1256 | carl9170_tx_status(ar, skb, false); | 1259 | carl9170_tx_status(ar, skb, false); |
1257 | return true; | 1260 | return true; |
1258 | } | 1261 | } |