| From 6db87124d018da7da10e5a2de665f47d884e5efc Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 29 Apr 2024 16:15:22 +0800 |
| Subject: wifi: ath12k: avoid duplicated vdev stop |
| |
| From: Kang Yang <quic_kangyang@quicinc.com> |
| |
| [ Upstream commit 3b0989e925f38df733a03ff5a320d6841006b3f9 ] |
| |
| ath12k_mac_op_unassign_vif_chanctx() will do vdev stop in |
| ath12k_mac_monitor_stop(). This ath12k_mac_vdev_stop() will do vdev stop |
| again, then might trigger firmware crash. |
| |
| So add judgement to avoid duplicated vdev stop. |
| |
| Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3 |
| |
| Fixes: c9e4e41e71ff ("wifi: ath12k: move peer delete after vdev stop of station for WCN7850") |
| Signed-off-by: Kang Yang <quic_kangyang@quicinc.com> |
| Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> |
| Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> |
| Link: https://msgid.link/20240429081525.983-3-quic_kangyang@quicinc.com |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/wireless/ath/ath12k/mac.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c |
| index 805cb084484a4..b3530d1dd728b 100644 |
| --- a/drivers/net/wireless/ath/ath12k/mac.c |
| +++ b/drivers/net/wireless/ath/ath12k/mac.c |
| @@ -7386,7 +7386,8 @@ ath12k_mac_op_unassign_vif_chanctx(struct ieee80211_hw *hw, |
| arvif->is_started = false; |
| } |
| |
| - if (arvif->vdev_type != WMI_VDEV_TYPE_STA) { |
| + if (arvif->vdev_type != WMI_VDEV_TYPE_STA && |
| + arvif->vdev_type != WMI_VDEV_TYPE_MONITOR) { |
| ath12k_bss_disassoc(ar, arvif); |
| ret = ath12k_mac_vdev_stop(arvif); |
| if (ret) |
| -- |
| 2.43.0 |
| |