diff options
author | Felix Fietkau <nbd@nbd.name> | 2020-09-08 15:36:56 +0300 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2020-09-18 13:19:04 +0300 |
commit | 9abf4e49830d606f18a05111cfa96b8f0b724c7d (patch) | |
tree | 255de87f6e6f169d02efb2513527a4dc887f4dec /net/mac80211/rx.c | |
parent | 1ff4e8f2dec8b145b451f05320e4f9e01d254ae2 (diff) | |
download | linux-9abf4e49830d606f18a05111cfa96b8f0b724c7d.tar.xz |
mac80211: optimize station connection monitor
Calling mod_timer for every rx/tx packet can be quite expensive.
Instead of constantly updating the timer, we can simply let it run out
and check the timestamp of the last ACK or rx packet to re-arm it.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Link: https://lore.kernel.org/r/20200908123702.88454-9-nbd@nbd.name
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r-- | net/mac80211/rx.c | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index b70e44d6f084..b04d6e01a346 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -1811,9 +1811,6 @@ ieee80211_rx_h_sta_process(struct ieee80211_rx_data *rx) sta->rx_stats.last_rate = sta_stats_encode_rate(status); } - if (rx->sdata->vif.type == NL80211_IFTYPE_STATION) - ieee80211_sta_rx_notify(rx->sdata, hdr); - sta->rx_stats.fragments++; u64_stats_update_begin(&rx->sta->rx_stats.syncp); @@ -4148,7 +4145,6 @@ void ieee80211_check_fast_rx(struct sta_info *sta) fastrx.sa_offs = offsetof(struct ieee80211_hdr, addr2); fastrx.expected_ds_bits = 0; } else { - fastrx.sta_notify = sdata->u.mgd.probe_send_count > 0; fastrx.da_offs = offsetof(struct ieee80211_hdr, addr1); fastrx.sa_offs = offsetof(struct ieee80211_hdr, addr3); fastrx.expected_ds_bits = @@ -4378,11 +4374,6 @@ static bool ieee80211_invoke_fast_rx(struct ieee80211_rx_data *rx, pskb_trim(skb, skb->len - fast_rx->icv_len)) goto drop; - if (unlikely(fast_rx->sta_notify)) { - ieee80211_sta_rx_notify(rx->sdata, hdr); - fast_rx->sta_notify = false; - } - /* statistics part of ieee80211_rx_h_sta_process() */ if (!(status->flag & RX_FLAG_NO_SIGNAL_VAL)) { stats->last_signal = status->signal; |