wifi: mac80211: only call drv_sta_rc_update for uploaded stations
authorFelix Fietkau <nbd@nbd.name>
Wed, 21 Feb 2024 14:05:35 +0000 (15:05 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 23 Feb 2024 08:22:52 +0000 (09:22 +0100)
When a station has not been uploaded yet, receiving SMPS or channel width
notification action frames can lead to rate_control_rate_update calling
drv_sta_rc_update with uninitialized driver private data.
Fix this by adding a missing check for sta->uploaded.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Link: https://msgid.link/20240221140535.16102-1-nbd@nbd.name
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/rate.c

index d5ea5f5bcf3a069e1d4dc5dd2638275e58aae51f..9d33fd2377c88af8ec38b6e398d103449f3b03b8 100644 (file)
@@ -119,7 +119,8 @@ void rate_control_rate_update(struct ieee80211_local *local,
                rcu_read_unlock();
        }
 
-       drv_sta_rc_update(local, sta->sdata, &sta->sta, changed);
+       if (sta->uploaded)
+               drv_sta_rc_update(local, sta->sdata, &sta->sta, changed);
 }
 
 int ieee80211_rate_control_register(const struct rate_control_ops *ops)