aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/status.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/status.c')
-rw-r--r--net/mac80211/status.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/net/mac80211/status.c b/net/mac80211/status.c
index d78f36c64c7b..32fe327acf4e 100644
--- a/net/mac80211/status.c
+++ b/net/mac80211/status.c
@@ -146,7 +146,7 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)
146 struct ieee80211_tx_status_rtap_hdr *rthdr; 146 struct ieee80211_tx_status_rtap_hdr *rthdr;
147 struct ieee80211_sub_if_data *sdata; 147 struct ieee80211_sub_if_data *sdata;
148 struct net_device *prev_dev = NULL; 148 struct net_device *prev_dev = NULL;
149 struct sta_info *sta; 149 struct sta_info *sta, *tmp;
150 int retry_count = -1, i; 150 int retry_count = -1, i;
151 bool injected; 151 bool injected;
152 152
@@ -166,9 +166,11 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)
166 166
167 sband = local->hw.wiphy->bands[info->band]; 167 sband = local->hw.wiphy->bands[info->band];
168 168
169 sta = sta_info_get(local, hdr->addr1); 169 for_each_sta_info(local, hdr->addr1, sta, tmp) {
170 /* skip wrong virtual interface */
171 if (memcmp(hdr->addr2, sta->sdata->dev->dev_addr, ETH_ALEN))
172 continue;
170 173
171 if (sta) {
172 if (!(info->flags & IEEE80211_TX_STAT_ACK) && 174 if (!(info->flags & IEEE80211_TX_STAT_ACK) &&
173 test_sta_flags(sta, WLAN_STA_PS_STA)) { 175 test_sta_flags(sta, WLAN_STA_PS_STA)) {
174 /* 176 /*