|
@@ -1008,7 +1008,7 @@ static void __sta_info_destroy_part2(struct sta_info *sta)
|
|
|
|
|
|
sinfo = kzalloc(sizeof(*sinfo), GFP_KERNEL);
|
|
|
if (sinfo)
|
|
|
- sta_set_sinfo(sta, sinfo);
|
|
|
+ sta_set_sinfo(sta, sinfo, true);
|
|
|
cfg80211_del_sta_sinfo(sdata->dev, sta->sta.addr, sinfo, GFP_KERNEL);
|
|
|
kfree(sinfo);
|
|
|
|
|
@@ -2079,7 +2079,8 @@ static inline u64 sta_get_stats_bytes(struct ieee80211_sta_rx_stats *rxstats)
|
|
|
return value;
|
|
|
}
|
|
|
|
|
|
-void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo)
|
|
|
+void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo,
|
|
|
+ bool tidstats)
|
|
|
{
|
|
|
struct ieee80211_sub_if_data *sdata = sta->sdata;
|
|
|
struct ieee80211_local *local = sdata->local;
|
|
@@ -2233,7 +2234,7 @@ void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo)
|
|
|
sinfo->filled |= BIT(NL80211_STA_INFO_RX_BITRATE);
|
|
|
}
|
|
|
|
|
|
- if (!cfg80211_sinfo_alloc_tid_stats(sinfo, GFP_KERNEL)) {
|
|
|
+ if (tidstats && !cfg80211_sinfo_alloc_tid_stats(sinfo, GFP_KERNEL)) {
|
|
|
for (i = 0; i < IEEE80211_NUM_TIDS + 1; i++) {
|
|
|
struct cfg80211_tid_stats *tidstats = &sinfo->pertid[i];
|
|
|
|