> +static void ieee80211_sta_mon_txrate_thold_check(struct sta_info *sta) > +{ > + struct rate_info rinfo; > + enum nl80211_sta_mon_txrate_threshold_event sta_txrate_event; > + int txrate; > + > + if (!sta->txrate_high) > + return; > + > + sta_set_rate_info_tx(sta, &sta->tx_stats.last_rate, &rinfo); > + txrate = cfg80211_calculate_bitrate(&rinfo); These are quite expensive calculations, I think this is far too much to do on every packet. You need to find a way to do most of the calculations at configure time, e.g. build a table of MCS configurations this station might use, and mark bits in there that fall above/below the threshold, or something like that? johannes