mac80211: fix last RX rate data consistency
[cascardo/linux.git] / net / mac80211 / rx.c
index d14c66d..5a6c36c 100644 (file)
@@ -1421,16 +1421,9 @@ ieee80211_rx_h_sta_process(struct ieee80211_rx_data *rx)
                    test_sta_flag(sta, WLAN_STA_AUTHORIZED)) {
                        sta->rx_stats.last_rx = jiffies;
                        if (ieee80211_is_data(hdr->frame_control) &&
-                           !is_multicast_ether_addr(hdr->addr1)) {
-                               sta->rx_stats.last_rate_idx =
-                                       status->rate_idx;
-                               sta->rx_stats.last_rate_flag =
-                                       status->flag;
-                               sta->rx_stats.last_rate_vht_flag =
-                                       status->vht_flag;
-                               sta->rx_stats.last_rate_vht_nss =
-                                       status->vht_nss;
-                       }
+                           !is_multicast_ether_addr(hdr->addr1))
+                               sta->rx_stats.last_rate =
+                                       sta_stats_encode_rate(status);
                }
        } else if (rx->sdata->vif.type == NL80211_IFTYPE_OCB) {
                sta->rx_stats.last_rx = jiffies;
@@ -1440,12 +1433,8 @@ ieee80211_rx_h_sta_process(struct ieee80211_rx_data *rx)
                 * match the current local configuration when processed.
                 */
                sta->rx_stats.last_rx = jiffies;
-               if (ieee80211_is_data(hdr->frame_control)) {
-                       sta->rx_stats.last_rate_idx = status->rate_idx;
-                       sta->rx_stats.last_rate_flag = status->flag;
-                       sta->rx_stats.last_rate_vht_flag = status->vht_flag;
-                       sta->rx_stats.last_rate_vht_nss = status->vht_nss;
-               }
+               if (ieee80211_is_data(hdr->frame_control))
+                       sta->rx_stats.last_rate = sta_stats_encode_rate(status);
        }
 
        if (rx->sdata->vif.type == NL80211_IFTYPE_STATION)