2 * FILS_NONCE_LEN);
 
        assoc_data->bss = req->bss;
-
-       if (ifmgd->req_smps == IEEE80211_SMPS_AUTOMATIC) {
-               if (ifmgd->powersave)
-                       sdata->smps_mode = IEEE80211_SMPS_DYNAMIC;
-               else
-                       sdata->smps_mode = IEEE80211_SMPS_OFF;
-       } else
-               sdata->smps_mode = ifmgd->req_smps;
-
        assoc_data->capability = req->bss->capability;
        assoc_data->supp_rates = bss->supp_rates;
        assoc_data->supp_rates_len = bss->supp_rates_len;
        if (err)
                goto err_clear;
 
+       if (ifmgd->req_smps == IEEE80211_SMPS_AUTOMATIC) {
+               if (ifmgd->powersave)
+                       sdata->smps_mode = IEEE80211_SMPS_DYNAMIC;
+               else
+                       sdata->smps_mode = IEEE80211_SMPS_OFF;
+       } else {
+               sdata->smps_mode = ifmgd->req_smps;
+       }
+
        rcu_read_lock();
        beacon_ies = rcu_dereference(req->bss->beacon_ies);