const struct cfg80211_sar_specs *sar)
 {
        struct ath11k *ar = hw->priv;
-       const struct cfg80211_sar_sub_specs *sspec = sar->sub_specs;
+       const struct cfg80211_sar_sub_specs *sspec;
        int ret, index;
        u8 *sar_tbl;
        u32 i;
 
+       if (!sar || sar->type != NL80211_SAR_TYPE_POWER ||
+           sar->num_sub_specs == 0)
+               return -EINVAL;
+
        mutex_lock(&ar->conf_mutex);
 
        if (!test_bit(WMI_TLV_SERVICE_BIOS_SAR_SUPPORT, ar->ab->wmi_ab.svc_map) ||
                goto exit;
        }
 
-       if (!sar || sar->type != NL80211_SAR_TYPE_POWER ||
-           sar->num_sub_specs == 0) {
-               ret = -EINVAL;
-               goto exit;
-       }
-
        ret = ath11k_wmi_pdev_set_bios_geo_table_param(ar);
        if (ret) {
                ath11k_warn(ar->ab, "failed to set geo table: %d\n", ret);
                goto exit;
        }
 
+       sspec = sar->sub_specs;
        for (i = 0; i < sar->num_sub_specs; i++) {
                if (sspec->freq_range_index >= (BIOS_SAR_TABLE_LEN >> 1)) {
                        ath11k_warn(ar->ab, "Ignore bad frequency index %u, max allowed %u\n",