diff mbox

[v2] ath10k: Fix a warning during channel switch with multiple vaps

Message ID 1487331902-12034-1-git-send-email-mohammed@qca.qualcomm.com (mailing list archive)
State Not Applicable
Delegated to: Kalle Valo
Headers show

Commit Message

Mohammed Shafi Shajakhan Feb. 17, 2017, 11:45 a.m. UTC
From: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>

Doing a channel switch via hostapd_cli seems to update
the new channel context for each VAP's appropriately as below
in 'ath10k_mac_update_vif_chan', hence we can safely suppress the
warning that shows up during this operation and dump the warning only
if no vaps are available for channel switch

hostapd_cli -i wlan0 chan_switch 5 5200
OK

ath10k_pci : mac chanctx switch n_vifs 3 mode 1
ath10k_pci : mac chanctx switch vdev_id 2 freq 5180->5200 width 0->0
ath10k_pci : mac chanctx switch vdev_id 1 freq 5180->5200 width 0->0
ath10k_pci : mac chanctx switch vdev_id 0 freq 5180->5200 width 0->0

Call Trace:

WARNING: backports-20161201-3.14.77-9ab3068/drivers/net/wireless/ath/ath10k/mac.c:7126
[<c022f2d4>] (warn_slowpath_null) from [<bf7f150c>]
(ath10k_reconfig_complete+0xe4/0x25c [ath10k_core])
[<bf7f150c>] (ath10k_reconfig_complete [ath10k_core])
[<bf7f35f0>] (ath10k_mac_vif_ap_csa_work+0x214/0x370 [ath10k_core])
[<bf7f38b8>] (ath10k_mac_op_change_chanctx+0x108/0x128 [ath10k_core])
[<bf782ac0>] (ieee80211_recalc_chanctx_min_def+0x30c/0x430 [mac80211])
[<bf7830a4>] (ieee80211_recalc_smps_chanctx+0x2ec/0x840 [mac80211])
[<bf7843e8>] (ieee80211_vif_use_reserved_context+0x7c/0xf8 [mac80211])
[<bf7843e8>] (ieee80211_vif_use_reserved_context [mac80211])
[<bf76e5d4>] (ieee80211_csa_finalize_work+0x5c/0x88 [mac80211])

Fixes: d7bf4b4aba05 ("ath10k: fix ar->rx_channel updating logic")
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
---
 drivers/net/wireless/ath/ath10k/mac.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Kalle Valo March 9, 2017, 8:01 a.m. UTC | #1
Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com> wrote:
> From: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
> 
> Doing a channel switch via hostapd_cli seems to update
> the new channel context for each VAP's appropriately as below
> in 'ath10k_mac_update_vif_chan', hence we can safely suppress the
> warning that shows up during this operation and dump the warning only
> if no vaps are available for channel switch
> 
> hostapd_cli -i wlan0 chan_switch 5 5200
> OK
> 
> ath10k_pci : mac chanctx switch n_vifs 3 mode 1
> ath10k_pci : mac chanctx switch vdev_id 2 freq 5180->5200 width 0->0
> ath10k_pci : mac chanctx switch vdev_id 1 freq 5180->5200 width 0->0
> ath10k_pci : mac chanctx switch vdev_id 0 freq 5180->5200 width 0->0
> 
> Call Trace:
> 
> WARNING: backports-20161201-3.14.77-9ab3068/drivers/net/wireless/ath/ath10k/mac.c:7126
> [<c022f2d4>] (warn_slowpath_null) from [<bf7f150c>]
> (ath10k_reconfig_complete+0xe4/0x25c [ath10k_core])
> [<bf7f150c>] (ath10k_reconfig_complete [ath10k_core])
> [<bf7f35f0>] (ath10k_mac_vif_ap_csa_work+0x214/0x370 [ath10k_core])
> [<bf7f38b8>] (ath10k_mac_op_change_chanctx+0x108/0x128 [ath10k_core])
> [<bf782ac0>] (ieee80211_recalc_chanctx_min_def+0x30c/0x430 [mac80211])
> [<bf7830a4>] (ieee80211_recalc_smps_chanctx+0x2ec/0x840 [mac80211])
> [<bf7843e8>] (ieee80211_vif_use_reserved_context+0x7c/0xf8 [mac80211])
> [<bf7843e8>] (ieee80211_vif_use_reserved_context [mac80211])
> [<bf76e5d4>] (ieee80211_csa_finalize_work+0x5c/0x88 [mac80211])
> 
> Fixes: d7bf4b4aba05 ("ath10k: fix ar->rx_channel updating logic")
> Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>

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

c73f8c00330f ath10k: fix a warning during channel switch with multiple vaps
diff mbox

Patch

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index d1b7edb..b416958 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -7085,7 +7085,7 @@  static int ath10k_ampdu_action(struct ieee80211_hw *hw,
 	lockdep_assert_held(&ar->data_lock);
 
 	WARN_ON(ctx && vifs);
-	WARN_ON(vifs && n_vifs != 1);
+	WARN_ON(vifs && !n_vifs);
 
 	/* FIXME: Sort of an optimization and a workaround. Peers and vifs are
 	 * on a linked list now. Doing a lookup peer -> vif -> chanctx for each