diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/recv.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/xmit.c | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c index 00140489becb..9c166f3804ab 100644 --- a/drivers/net/wireless/ath/ath9k/recv.c +++ b/drivers/net/wireless/ath/ath9k/recv.c | |||
@@ -977,7 +977,11 @@ static void ath9k_process_rssi(struct ath_common *common, | |||
977 | * at least one sdata of a wiphy on mac80211 but with ath9k virtual | 977 | * at least one sdata of a wiphy on mac80211 but with ath9k virtual |
978 | * wiphy you'd have to iterate over every wiphy and each sdata. | 978 | * wiphy you'd have to iterate over every wiphy and each sdata. |
979 | */ | 979 | */ |
980 | sta = ieee80211_find_sta_by_hw(hw, hdr->addr2); | 980 | if (is_multicast_ether_addr(hdr->addr1)) |
981 | sta = ieee80211_find_sta_by_ifaddr(hw, hdr->addr2, NULL); | ||
982 | else | ||
983 | sta = ieee80211_find_sta_by_ifaddr(hw, hdr->addr2, hdr->addr1); | ||
984 | |||
981 | if (sta) { | 985 | if (sta) { |
982 | an = (struct ath_node *) sta->drv_priv; | 986 | an = (struct ath_node *) sta->drv_priv; |
983 | if (rx_stats->rs_rssi != ATH9K_RSSI_BAD && | 987 | if (rx_stats->rs_rssi != ATH9K_RSSI_BAD && |
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c index 85a7323a04ef..f7da6b20a925 100644 --- a/drivers/net/wireless/ath/ath9k/xmit.c +++ b/drivers/net/wireless/ath/ath9k/xmit.c | |||
@@ -328,8 +328,7 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq, | |||
328 | 328 | ||
329 | rcu_read_lock(); | 329 | rcu_read_lock(); |
330 | 330 | ||
331 | /* XXX: use ieee80211_find_sta! */ | 331 | sta = ieee80211_find_sta_by_ifaddr(hw, hdr->addr1, hdr->addr2); |
332 | sta = ieee80211_find_sta_by_hw(hw, hdr->addr1); | ||
333 | if (!sta) { | 332 | if (!sta) { |
334 | rcu_read_unlock(); | 333 | rcu_read_unlock(); |
335 | 334 | ||