IWL_UCODE_TLV_CAPA_DS_PARAM_SET_IE_SUPPORT;
 }
 
-static int iwl_mvm_max_scan_ie_fw_cmd_room(struct iwl_mvm *mvm,
-                                          bool is_sched_scan)
+static int iwl_mvm_max_scan_ie_fw_cmd_room(struct iwl_mvm *mvm)
 {
        int max_probe_len;
 
        return max_probe_len;
 }
 
-int iwl_mvm_max_scan_ie_len(struct iwl_mvm *mvm, bool is_sched_scan)
+int iwl_mvm_max_scan_ie_len(struct iwl_mvm *mvm)
 {
-       int max_ie_len = iwl_mvm_max_scan_ie_fw_cmd_room(mvm, is_sched_scan);
+       int max_ie_len = iwl_mvm_max_scan_ie_fw_cmd_room(mvm);
 
        /* TODO: [BUG] This function should return the maximum allowed size of
         * scan IEs, however the LMAC scan api contains both 2GHZ and 5GHZ IEs
                        cpu_to_le32(IWL_MVM_LMAC_SCAN_FLAGS_RRM_ENABLED);
 }
 
+static inline bool iwl_mvm_scan_fits(struct iwl_mvm *mvm, int n_ssids,
+                                    struct ieee80211_scan_ies *ies,
+                                    int n_channels)
+{
+       return ((n_ssids <= PROBE_OPTION_MAX) &&
+               (n_channels <= mvm->fw->ucode_capa.n_scan_channels) &
+               (ies->common_ie_len +
+                ies->len[NL80211_BAND_2GHZ] +
+                ies->len[NL80211_BAND_5GHZ] <=
+                iwl_mvm_max_scan_ie_fw_cmd_room(mvm)));
+}
+
 static int iwl_mvm_scan_lmac(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
                             struct cfg80211_scan_request *req,
                             struct ieee80211_scan_ies *ies)
        if (WARN_ON(mvm->scan_cmd == NULL))
                return -ENOMEM;
 
-       if (req->n_ssids > PROBE_OPTION_MAX ||
-           ies->common_ie_len + ies->len[NL80211_BAND_2GHZ] +
-           ies->len[NL80211_BAND_5GHZ] >
-               iwl_mvm_max_scan_ie_fw_cmd_room(mvm, false) ||
-           req->n_channels > mvm->fw->ucode_capa.n_scan_channels)
+       if (!iwl_mvm_scan_fits(mvm, req->n_ssids, ies, req->n_channels))
                return -ENOBUFS;
 
        mvm->scan_status |= IWL_MVM_SCAN_REGULAR;
        if (WARN_ON(mvm->scan_cmd == NULL))
                return -ENOMEM;
 
-       if (req->n_ssids > PROBE_OPTION_MAX ||
-           ies->common_ie_len + ies->len[NL80211_BAND_2GHZ] +
-           ies->len[NL80211_BAND_5GHZ] >
-               iwl_mvm_max_scan_ie_fw_cmd_room(mvm, true) ||
-           req->n_channels > mvm->fw->ucode_capa.n_scan_channels)
+       if (!iwl_mvm_scan_fits(mvm, req->n_ssids, ies, req->n_channels))
                return -ENOBUFS;
 
        iwl_mvm_scan_calc_params(mvm, vif, req->n_ssids, 0, ¶ms);
        if (WARN_ON(mvm->scan_cmd == NULL))
                return -ENOMEM;
 
-       if (WARN_ON(req->n_ssids > PROBE_OPTION_MAX ||
-                   ies->common_ie_len +
-                   ies->len[NL80211_BAND_2GHZ] +
-                   ies->len[NL80211_BAND_5GHZ] + 24 + 2 >
-                   SCAN_OFFLOAD_PROBE_REQ_SIZE || req->n_channels >
-                   mvm->fw->ucode_capa.n_scan_channels))
+       if (!iwl_mvm_scan_fits(mvm, req->n_ssids, ies, req->n_channels))
                return -ENOBUFS;
 
        iwl_mvm_scan_calc_params(mvm, vif, req->n_ssids, req->flags,
        if (WARN_ON(mvm->scan_cmd == NULL))
                return -ENOMEM;
 
-       if (WARN_ON(req->n_ssids > PROBE_OPTION_MAX ||
-                   ies->common_ie_len + ies->len[NL80211_BAND_2GHZ] +
-                   ies->len[NL80211_BAND_5GHZ] + 24 + 2 >
-                   SCAN_OFFLOAD_PROBE_REQ_SIZE || req->n_channels >
-                   mvm->fw->ucode_capa.n_scan_channels))
+       if (!iwl_mvm_scan_fits(mvm, req->n_ssids, ies, req->n_channels))
                return -ENOBUFS;
 
        iwl_mvm_scan_calc_params(mvm, vif, req->n_ssids, req->flags,