ath11k: Initialize complete alpha2 for regulatory change
authorSven Eckelmann <sven@narfation.org>
Wed, 21 Oct 2020 14:05:55 +0000 (16:05 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Sat, 7 Nov 2020 08:02:28 +0000 (10:02 +0200)
The function ath11k_wmi_send_init_country_cmd is taking 3 byte from alpha2
of the structure wmi_init_country_params. But the function
ath11k_reg_notifier is only initializing 2 bytes. The third byte is
therefore always an uninitialized value.

The command can happen to look like

  0c 00 87 02 01 00 00 00 00 00 00 00 43 41 f8 00

instead of

  0c 00 87 02 01 00 00 00 00 00 00 00 43 41 00 00

Tested-on: IPQ8074 hw2.0 WLAN.HK.2.1.0.1-01161-QCAHKSWPL_SILICONZ-1
Tested-on: IPQ8074 hw2.0 WLAN.HK.2.1.0.1-01228-QCAHKSWPL_SILICONZ-1
Tested-on: IPQ8074 hw2.0 WLAN.HK.2.1.0.1-01238-QCAHKSWPL_SILICONZ-2
Tested-on: IPQ8074 hw2.0 WLAN.HK.2.4.0.1.r1-00019-QCAHKSWPL_SILICONZ-1
Tested-on: IPQ8074 hw2.0 WLAN.HK.2.4.0.1.r1-00026-QCAHKSWPL_SILICONZ-2

Fixes: d5c65159f289 ("ath11k: driver for Qualcomm IEEE 802.11ax devices")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20201021140555.4114715-1-sven@narfation.org
drivers/net/wireless/ath/ath11k/reg.c

index f6a1f0352989dae496830f910f11a5c3311334df..83f75f8855ebe1eafb451e1a5bd36a1be438e690 100644 (file)
@@ -80,6 +80,7 @@ ath11k_reg_notifier(struct wiphy *wiphy, struct regulatory_request *request)
         */
        init_country_param.flags = ALPHA_IS_SET;
        memcpy(&init_country_param.cc_info.alpha2, request->alpha2, 2);
+       init_country_param.cc_info.alpha2[2] = 0;
 
        ret = ath11k_wmi_send_init_country_cmd(ar, init_country_param);
        if (ret)