wifi: iwlwifi: make iwl_uefi_get_uats_table() return void
authorJohannes Berg <johannes.berg@intel.com>
Mon, 5 May 2025 18:56:51 +0000 (21:56 +0300)
committerMiri Korenblit <miriam.rachel.korenblit@intel.com>
Wed, 7 May 2025 03:08:02 +0000 (06:08 +0300)
This sets both fwrt->uats_valid and returns 0, but in the
static inline it returns 0 without setting uats_valid,
which is confusing and the iwlmvm code misbehaves in this
case.

Since it already sets uats_valid, just remove the extra
return value.

Reported-by: Bjoern A. Zeeb <bz@FreeBSD.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Link: https://patch.msgid.link/20250505215513.e981a7911228.Ic94b5e03e2053a08b84cabeb58ce3b6598fd9fc6@changeid
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/uefi.c
drivers/net/wireless/intel/iwlwifi/fw/uefi.h
drivers/net/wireless/intel/iwlwifi/mld/regulatory.c
drivers/net/wireless/intel/iwlwifi/mvm/fw.c

index ce17424f3a60b52dac3f88b86b21cfc13c1f3645..ce68d96c31b88b8f09f3a12bdc273cb5fa003e3f 100644 (file)
@@ -410,8 +410,8 @@ static int iwl_uefi_uats_parse(struct uefi_cnv_wlan_uats_data *uats_data,
        return 0;
 }
 
-int iwl_uefi_get_uats_table(struct iwl_trans *trans,
-                           struct iwl_fw_runtime *fwrt)
+void iwl_uefi_get_uats_table(struct iwl_trans *trans,
+                            struct iwl_fw_runtime *fwrt)
 {
        struct uefi_cnv_wlan_uats_data *data;
        int ret;
@@ -419,17 +419,12 @@ int iwl_uefi_get_uats_table(struct iwl_trans *trans,
        data = iwl_uefi_get_verified_variable(trans, IWL_UEFI_UATS_NAME,
                                              "UATS", sizeof(*data), NULL);
        if (IS_ERR(data))
-               return -EINVAL;
+               return;
 
        ret = iwl_uefi_uats_parse(data, fwrt);
-       if (ret < 0) {
+       if (ret < 0)
                IWL_DEBUG_FW(trans, "Cannot read UATS table. rev is invalid\n");
-               kfree(data);
-               return ret;
-       }
-
        kfree(data);
-       return 0;
 }
 IWL_EXPORT_SYMBOL(iwl_uefi_get_uats_table);
 
index 81df7020b2c7e570739ad1fd8dd43a74672fa960..5a4c557e47c7febcce7896fe3d702ac068102ad2 100644 (file)
@@ -272,8 +272,8 @@ int iwl_uefi_get_wbem(struct iwl_fw_runtime *fwrt, u32 *value);
 int iwl_uefi_get_dsm(struct iwl_fw_runtime *fwrt, enum iwl_dsm_funcs func,
                     u32 *value);
 void iwl_uefi_get_sgom_table(struct iwl_trans *trans, struct iwl_fw_runtime *fwrt);
-int iwl_uefi_get_uats_table(struct iwl_trans *trans,
-                           struct iwl_fw_runtime *fwrt);
+void iwl_uefi_get_uats_table(struct iwl_trans *trans,
+                            struct iwl_fw_runtime *fwrt);
 int iwl_uefi_get_puncturing(struct iwl_fw_runtime *fwrt);
 int iwl_uefi_get_dsbr(struct iwl_fw_runtime *fwrt, u32 *value);
 int iwl_uefi_get_phy_filters(struct iwl_fw_runtime *fwrt);
@@ -368,11 +368,9 @@ void iwl_uefi_get_sgom_table(struct iwl_trans *trans, struct iwl_fw_runtime *fwr
 {
 }
 
-static inline
-int iwl_uefi_get_uats_table(struct iwl_trans *trans,
-                           struct iwl_fw_runtime *fwrt)
+static inline void
+iwl_uefi_get_uats_table(struct iwl_trans *trans, struct iwl_fw_runtime *fwrt)
 {
-       return 0;
 }
 
 static inline
index fa9f8ac1463102cae663d4e40a6208eeb291ca64..326c300470ea38d30c817244a5404613b8bb06e4 100644 (file)
@@ -63,9 +63,7 @@ void iwl_mld_get_bios_tables(struct iwl_mld *mld)
                /* we don't fail if the table is not available */
        }
 
-       ret = iwl_uefi_get_uats_table(mld->trans, &mld->fwrt);
-       if (ret)
-               IWL_DEBUG_RADIO(mld, "failed to read UATS table (%d)\n", ret);
+       iwl_uefi_get_uats_table(mld->trans, &mld->fwrt);
 
        iwl_bios_get_phy_filters(&mld->fwrt);
 }
index 5d2cafc44a7a5ddcca110848ed3627b328a7798c..d3ec554d4ebac5cda9313a002a0d3afff8cbdd0a 100644 (file)
@@ -511,11 +511,10 @@ static void iwl_mvm_uats_init(struct iwl_mvm *mvm)
                return;
        }
 
-       ret = iwl_uefi_get_uats_table(mvm->trans, &mvm->fwrt);
-       if (ret < 0) {
-               IWL_DEBUG_FW(mvm, "failed to read UATS table (%d)\n", ret);
+       iwl_uefi_get_uats_table(mvm->trans, &mvm->fwrt);
+
+       if (!mvm->fwrt.uats_valid)
                return;
-       }
 
        ret = iwl_mvm_send_cmd(mvm, &cmd);
        if (ret < 0)