diff options
author | Johannes Berg <johannes.berg@intel.com> | 2022-06-23 09:48:00 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2022-07-15 11:43:14 +0200 |
commit | 28977e790b5d0e6d37db6e659cfbcde9d24ae718 (patch) | |
tree | 7160c6756e96cdd5f7b5de5024d8f769706963a1 | |
parent | c5c48a11dd86c7f9d86b8c4cc8eaed350ffd1ea7 (diff) | |
download | linux-28977e790b5d0e6d37db6e659cfbcde9d24ae718.tar.bz2 |
wifi: mac80211: skip powersave recalc if driver SUPPORTS_DYNAMIC_PS
There are a few places that check ps_sdata and/or the dynamic
PS timeout, but they're erroneous in case SUPPORTS_DYNAMIC_PS
is set by the driver.
Skip the entire recalculation in this case so we cannot get
into those paths elsewhere, and so we simplify this for the
purpose of implementing MLO.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r-- | net/mac80211/mlme.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 52a41416b8bb..e5c058db451d 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -1787,7 +1787,8 @@ void ieee80211_recalc_ps(struct ieee80211_local *local) int count = 0; int timeout; - if (!ieee80211_hw_check(&local->hw, SUPPORTS_PS)) { + if (!ieee80211_hw_check(&local->hw, SUPPORTS_PS) || + ieee80211_hw_check(&local->hw, SUPPORTS_DYNAMIC_PS)) { local->ps_sdata = NULL; return; } |