From: Mohammed Shafi Shajakhan Date: Thu, 12 Jan 2017 11:02:21 +0000 (+0200) Subject: ath10k: fix wifi connectivity and warning in rx with channel 169 X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=c486dc571a370ec58aefc9cc93937945403ef351;p=openwrt%2Fstaging%2Fblogic.git ath10k: fix wifi connectivity and warning in rx with channel 169 In countries where basic operation of channel 169 is allowed, this fixes the below WARN_ON_ONCE in Rx and fixes the station connectivity failure in channel 169 as the packet is dropped in the driver as the current check limits to channel 165. As of now all the packets beyond channel 165 is dropped, fix this by extending the range to channel 169. Call trace: drivers/net/wireless/ath/ath10k/wmi.c:1505 ath10k_wmi_event_mgmt_rx+0x278/0x440 [ath10k_core]() Call Trace: [] ? printk+0x2d/0x2f [] warn_slowpath_common+0x72/0xa0 [] ? ath10k_wmi_event_mgmt_rx+0x278/0x440 [] ? ath10k_wmi_event_mgmt_rx+0x278/0x440 [] warn_slowpath_null+0x22/0x30 [] ath10k_wmi_event_mgmt_rx+0x278/0x440 [] ? ath10k_pci_sleep+0x8b/0xb0 [ath10k_pci] [] ath10k_wmi_10_2_op_rx+0xf3/0x3b0 [] ath10k_wmi_process_rx+0x1e/0x60 [] ath10k_htc_rx_completion_handler+0x347/0x4d0 [ath10k_core] [] ? ath10k_ce_completed_recv_next+0x53/0x70 [ath10k_pci] [] ath10k_pci_ce_recv_data+0x171/0x1d0 [ath10k_pci] [] ? ath10k_pci_write32+0x39/0x80 [ath10k_pci] [] ath10k_ce_per_engine_service+0x5c/0xa0 [ath10k_pci] [] ath10k_ce_per_engine_service_any+0x5f/0x70 [ath10k_pci] [] ? local_bh_enable_ip+0x90/0x90 [] ath10k_pci_tasklet+0x1b/0x50 [ath10k_pci] Fixes: 34c30b0a5e97 ("ath10k: enable advertising support for channel 169, 5Ghz") Signed-off-by: Mohammed Shafi Shajakhan Signed-off-by: Kalle Valo --- diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c index e27cfc19754b..414ad3e1eed4 100644 --- a/drivers/net/wireless/ath/ath10k/wmi.c +++ b/drivers/net/wireless/ath/ath10k/wmi.c @@ -2326,7 +2326,7 @@ int ath10k_wmi_event_mgmt_rx(struct ath10k *ar, struct sk_buff *skb) */ if (channel >= 1 && channel <= 14) { status->band = NL80211_BAND_2GHZ; - } else if (channel >= 36 && channel <= 165) { + } else if (channel >= 36 && channel <= 169) { status->band = NL80211_BAND_5GHZ; } else { /* Shouldn't happen unless list of advertised channels to