]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
wifi: iwlwifi: dvm: clean up rs_get_rate() logic
authorJohannes Berg <johannes.berg@intel.com>
Fri, 10 May 2024 14:06:28 +0000 (17:06 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 23 May 2024 08:49:49 +0000 (10:49 +0200)
The logic here is rather convoluted - we cannot get here with
lq_sta being NULL as mac80211 will (no longer) call us like
that, and since I removed the rate_control_send_low() call in
this function there's no longer any point in setting priv_sta
to NULL either.

So the only thing that remains to check is if we have actually
initialized our lq_sta->drv pointer, and exit if we didn't in
which case we'll use the data mac80211 already set up for the
low rate usage.

Reviewed-by: Luciano Coelho <luciano.coelho@intel.com>
Link: https://msgid.link/20240510170500.a4cdb41825eb.Id202bcc967c32829f70ab1412f8893b6eb7f78e2@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/dvm/rs.c

index f4a6f76cf193ab6886fc787911ef807e8acdbc8f..8879e668ef0da048766ce356229eb1191a7616e6 100644 (file)
@@ -2673,20 +2673,16 @@ static void rs_get_rate(void *priv_r, struct ieee80211_sta *sta, void *priv_sta,
        IWL_DEBUG_RATE_LIMIT(priv, "rate scale calculate new rate for skb\n");
 
        /* Get max rate if user set max rate */
-       if (lq_sta) {
-               lq_sta->max_rate_idx = fls(txrc->rate_idx_mask) - 1;
-               if ((sband->band == NL80211_BAND_5GHZ) &&
-                   (lq_sta->max_rate_idx != -1))
-                       lq_sta->max_rate_idx += IWL_FIRST_OFDM_RATE;
-               if ((lq_sta->max_rate_idx < 0) ||
-                   (lq_sta->max_rate_idx >= IWL_RATE_COUNT))
-                       lq_sta->max_rate_idx = -1;
-       }
+       lq_sta->max_rate_idx = fls(txrc->rate_idx_mask) - 1;
+       if (sband->band == NL80211_BAND_5GHZ && lq_sta->max_rate_idx != -1)
+               lq_sta->max_rate_idx += IWL_FIRST_OFDM_RATE;
+       if (lq_sta->max_rate_idx < 0 || lq_sta->max_rate_idx >= IWL_RATE_COUNT)
+               lq_sta->max_rate_idx = -1;
 
-       /* Treat uninitialized rate scaling data same as non-existing. */
-       if (lq_sta && !lq_sta->drv) {
+       if (!lq_sta->drv) {
                IWL_DEBUG_RATE(priv, "Rate scaling not initialized yet.\n");
-               priv_sta = NULL;
+               /* mac80211 already set up the data for using low rates */
+               return;
        }
 
        rate_idx  = lq_sta->last_txrate_idx;
@@ -2756,7 +2752,6 @@ void iwl_rs_rate_init(struct iwl_priv *priv, struct ieee80211_sta *sta, u8 sta_i
        lq_sta = &sta_priv->lq_sta;
        sband = hw->wiphy->bands[conf->chandef.chan->band];
 
-
        lq_sta->lq.sta_id = sta_id;
 
        for (j = 0; j < LQ_SIZE; j++)