2023-04-21 15:03:59

by Maxime Bizon

[permalink] [raw]
Subject: [PATCH] ath11k: fix registration of 6Ghz-only phy without the full channel range

Because of what seems to be a typo, a 6Ghz-only phy for which the BDF
does not allow the 7115Mhz channel will fail to register:

WARNING: CPU: 2 PID: 106 at net/wireless/core.c:907 wiphy_register+0x914/0x954
Modules linked in: ath11k_pci sbsa_gwdt
CPU: 2 PID: 106 Comm: kworker/u8:5 Not tainted 6.3.0-rc7-next-20230418-00549-g1e096a17625a-dirty #9
Hardware name: Freebox V7R Board (DT)
Workqueue: ath11k_qmi_driver_event ath11k_qmi_driver_event_work
pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : wiphy_register+0x914/0x954
lr : ieee80211_register_hw+0x67c/0xc10
sp : ffffff800b123aa0
x29: ffffff800b123aa0 x28: 0000000000000000 x27: 0000000000000000
x26: 0000000000000000 x25: 0000000000000006 x24: ffffffc008d51418
x23: ffffffc008cb0838 x22: ffffff80176c2460 x21: 0000000000000168
x20: ffffff80176c0000 x19: ffffff80176c03e0 x18: 0000000000000014
x17: 00000000cbef338c x16: 00000000d2a26f21 x15: 00000000ad6bb85f
x14: 0000000000000020 x13: 0000000000000020 x12: 00000000ffffffbd
x11: 0000000000000208 x10: 00000000fffffdf7 x9 : ffffffc009394718
x8 : ffffff80176c0528 x7 : 000000007fffffff x6 : 0000000000000006
x5 : 0000000000000005 x4 : ffffff800b304284 x3 : ffffff800b304284
x2 : ffffff800b304d98 x1 : 0000000000000000 x0 : 0000000000000000
Call trace:
wiphy_register+0x914/0x954
ieee80211_register_hw+0x67c/0xc10
ath11k_mac_register+0x7c4/0xe10
ath11k_core_qmi_firmware_ready+0x1f4/0x570
ath11k_qmi_driver_event_work+0x198/0x590
process_one_work+0x1b8/0x328
worker_thread+0x6c/0x414
kthread+0x100/0x104
ret_from_fork+0x10/0x20
---[ end trace 0000000000000000 ]---
ath11k_pci 0002:01:00.0: ieee80211 registration failed: -22
ath11k_pci 0002:01:00.0: failed register the radio with mac80211: -22
ath11k_pci 0002:01:00.0: failed to create pdev core: -22

Signed-off-by: Maxime Bizon <[email protected]>
---
drivers/net/wireless/ath/ath11k/mac.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index 110a38cce0a7..850ef35c1f75 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -8778,7 +8778,7 @@ static int ath11k_mac_setup_channels_rates(struct ath11k *ar,
}

if (supported_bands & WMI_HOST_WLAN_5G_CAP) {
- if (reg_cap->high_5ghz_chan >= ATH11K_MAX_6G_FREQ) {
+ if (reg_cap->high_5ghz_chan >= ATH11K_MIN_6G_FREQ) {
channels = kmemdup(ath11k_6ghz_channels,
sizeof(ath11k_6ghz_channels), GFP_KERNEL);
if (!channels) {
--
2.34.1


2023-04-28 17:03:56

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] ath11k: fix registration of 6Ghz-only phy without the full channel range

Maxime Bizon <[email protected]> wrote:

> Because of what seems to be a typo, a 6Ghz-only phy for which the BDF
> does not allow the 7115Mhz channel will fail to register:
>
> WARNING: CPU: 2 PID: 106 at net/wireless/core.c:907 wiphy_register+0x914/0x954
> Modules linked in: ath11k_pci sbsa_gwdt
> CPU: 2 PID: 106 Comm: kworker/u8:5 Not tainted 6.3.0-rc7-next-20230418-00549-g1e096a17625a-dirty #9
> Hardware name: Freebox V7R Board (DT)
> Workqueue: ath11k_qmi_driver_event ath11k_qmi_driver_event_work
> pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> pc : wiphy_register+0x914/0x954
> lr : ieee80211_register_hw+0x67c/0xc10
> sp : ffffff800b123aa0
> x29: ffffff800b123aa0 x28: 0000000000000000 x27: 0000000000000000
> x26: 0000000000000000 x25: 0000000000000006 x24: ffffffc008d51418
> x23: ffffffc008cb0838 x22: ffffff80176c2460 x21: 0000000000000168
> x20: ffffff80176c0000 x19: ffffff80176c03e0 x18: 0000000000000014
> x17: 00000000cbef338c x16: 00000000d2a26f21 x15: 00000000ad6bb85f
> x14: 0000000000000020 x13: 0000000000000020 x12: 00000000ffffffbd
> x11: 0000000000000208 x10: 00000000fffffdf7 x9 : ffffffc009394718
> x8 : ffffff80176c0528 x7 : 000000007fffffff x6 : 0000000000000006
> x5 : 0000000000000005 x4 : ffffff800b304284 x3 : ffffff800b304284
> x2 : ffffff800b304d98 x1 : 0000000000000000 x0 : 0000000000000000
> Call trace:
> wiphy_register+0x914/0x954
> ieee80211_register_hw+0x67c/0xc10
> ath11k_mac_register+0x7c4/0xe10
> ath11k_core_qmi_firmware_ready+0x1f4/0x570
> ath11k_qmi_driver_event_work+0x198/0x590
> process_one_work+0x1b8/0x328
> worker_thread+0x6c/0x414
> kthread+0x100/0x104
> ret_from_fork+0x10/0x20
> ---[ end trace 0000000000000000 ]---
> ath11k_pci 0002:01:00.0: ieee80211 registration failed: -22
> ath11k_pci 0002:01:00.0: failed register the radio with mac80211: -22
> ath11k_pci 0002:01:00.0: failed to create pdev core: -22
>
> Signed-off-by: Maxime Bizon <[email protected]>
> Signed-off-by: Kalle Valo <[email protected]>

Patch applied to ath-next branch of ath.git, thanks.

e2ceb1de2f83 wifi: ath11k: fix registration of 6Ghz-only phy without the full channel range

--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches