2f066d0a565dceaa41015202c8ca5d41b9898b3c
[openwrt/staging/blogic.git] /
1 From f3ca72b0327101a074a871539e61775d43908ca4 Mon Sep 17 00:00:00 2001
2 From: Nagarajan Maran <quic_nmaran@quicinc.com>
3 Date: Fri, 14 Oct 2022 21:20:54 +0530
4 Subject: [PATCH] wifi: ath11k: fix monitor vdev creation with firmware
5 recovery
6
7 During firmware recovery, the monitor interface is not
8 getting created in the driver and firmware since
9 the respective flags are not updated properly.
10
11 So after firmware recovery is successful, when monitor
12 interface is brought down manually, firmware assertion
13 is observed, since we are trying to bring down the
14 interface which is not yet created in the firmware.
15
16 Fix this by updating the monitor flags properly per
17 phy#, during firmware recovery.
18
19 Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
20
21 Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
22 Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
23 Link: https://lore.kernel.org/r/20221014155054.11471-1-quic_nmaran@quicinc.com
24 ---
25 drivers/net/wireless/ath/ath11k/core.c | 4 ++++
26 1 file changed, 4 insertions(+)
27
28 --- a/drivers/net/wireless/ath/ath11k/core.c
29 +++ b/drivers/net/wireless/ath/ath11k/core.c
30 @@ -1677,6 +1677,10 @@ void ath11k_core_pre_reconfigure_recover
31 ath11k_mac_tx_mgmt_pending_free, ar);
32 idr_destroy(&ar->txmgmt_idr);
33 wake_up(&ar->txmgmt_empty_waitq);
34 +
35 + ar->monitor_vdev_id = -1;
36 + clear_bit(ATH11K_FLAG_MONITOR_STARTED, &ar->monitor_flags);
37 + clear_bit(ATH11K_FLAG_MONITOR_VDEV_CREATED, &ar->monitor_flags);
38 }
39
40 wake_up(&ab->wmi_ab.tx_credits_wq);