]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: iwlwifi: allow only CN mcc from WRDD
authorAnjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Thu, 8 Aug 2024 20:22:49 +0000 (23:22 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 27 Aug 2024 08:28:55 +0000 (10:28 +0200)
Block other mcc expect CN from WRDD ACPI.

Signed-off-by: Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20240808232017.fe6ea7aa4b39.I86004687a2963fe26f990770aca103e2f5cb1628@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/acpi.c
drivers/net/wireless/intel/iwlwifi/fw/regulatory.h
drivers/net/wireless/intel/iwlwifi/fw/uefi.c
drivers/net/wireless/intel/iwlwifi/fw/uefi.h

index 79774c8c7ff4526b9ca1e6bf215df9931d1ba071..d20cd49773c9ec51b035c7f5fc0899b3bbd2151e 100644 (file)
@@ -357,6 +357,11 @@ int iwl_acpi_get_mcc(struct iwl_fw_runtime *fwrt, char *mcc)
        }
 
        mcc_val = wifi_pkg->package.elements[1].integer.value;
+       if (mcc_val != BIOS_MCC_CHINA) {
+               ret = -EINVAL;
+               IWL_DEBUG_RADIO(fwrt, "ACPI WRDD is supported only for CN\n");
+               goto out_free;
+       }
 
        mcc[0] = (mcc_val >> 8) & 0xff;
        mcc[1] = mcc_val & 0xff;
index c2209948b4c01b95a02c1790c5c7a04328b1a354..81787501d4a4f0042498e4cfd7acbb6ababf008c 100644 (file)
@@ -45,6 +45,8 @@
 #define IWL_WTAS_ENABLE_IEC_MSK        0x4
 #define IWL_WTAS_USA_UHB_MSK           BIT(16)
 
+#define BIOS_MCC_CHINA 0x434e
+
 /*
  * The profile for revision 2 is a superset of revision 1, which is in
  * turn a superset of revision 0.  So we can store all revisions
index 754fc5014fbf621879194daed0121936fb527b6a..091fb6fd7c787cd19969261f013edca3989f0bc2 100644 (file)
@@ -638,7 +638,7 @@ int iwl_uefi_get_mcc(struct iwl_fw_runtime *fwrt, char *mcc)
                goto out;
        }
 
-       if (data->mcc != UEFI_MCC_CHINA) {
+       if (data->mcc != BIOS_MCC_CHINA) {
                ret = -EINVAL;
                IWL_DEBUG_RADIO(fwrt, "UEFI WRDD is supported only for CN\n");
                goto out;
index 0b24771900704f85e3dbd860b300bce968147562..e525d449e656e787a6eb4d45feae8087c05b7c1d 100644 (file)
@@ -151,8 +151,6 @@ struct uefi_cnv_var_splc {
        u32 default_pwr_limit;
 } __packed;
 
-#define UEFI_MCC_CHINA 0x434e
-
 /* struct uefi_cnv_var_wrdd - WRDD table as defined in UEFI
  * @revision: the revision of the table
  * @mcc: country identifier as defined in ISO/IEC 3166-1 Alpha 2 code