From 25800f4de6e4706f0a7a241a1e72a3ef7159cecf Mon Sep 17 00:00:00 2001 From: Jianmin Zhu Date: Thu, 7 May 2020 16:03:15 +0800 Subject: [PATCH] qcacld-3.0: Tx dropped for osif_vdev_sync_op_start failed osif_psoc_sync_trans_start_wait is wrongly used in Idceff767d62c1e81046a696cb58f70a897cbd074, which will block any vdev operation which results in tethering failure and Tx packets also won't be transmitted whenever ipa event is processed as we have vdev check in hard transmit too. Fix: Don't call osif_psoc_sync_trans_start_wait when handle IPA event, just check recoverying state. Change-Id: Ibb5d94e0e22413fdd9dad294fc8da58eba8a700b CRs-Fixed: 2680423 --- components/ipa/core/src/wlan_ipa_core.c | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/components/ipa/core/src/wlan_ipa_core.c b/components/ipa/core/src/wlan_ipa_core.c index 41668b24d63f..9517cf906c74 100644 --- a/components/ipa/core/src/wlan_ipa_core.c +++ b/components/ipa/core/src/wlan_ipa_core.c @@ -26,8 +26,7 @@ #include "sir_api.h" #include "host_diag_core_event.h" #include "wlan_objmgr_vdev_obj.h" -#include "osif_psoc_sync.h" -#include +#include "qdf_platform.h" static struct wlan_ipa_priv *gp_ipa; static void wlan_ipa_set_pending_tx_timer(struct wlan_ipa_priv *ipa_ctx); @@ -3429,27 +3428,12 @@ static void __wlan_ipa_uc_fw_op_event_handler(void *data) */ static void wlan_ipa_uc_fw_op_event_handler(void *data) { - int ret; - struct osif_psoc_sync *psoc_sync; - struct uc_op_work_struct *uc_op_work = - (struct uc_op_work_struct *)data; - - if (!uc_op_work || !uc_op_work->osdev) { - ipa_err("Invalid op work"); - return; - } - - /* This event handler needs to wait for psoc transition */ - ret = osif_psoc_sync_trans_start_wait(uc_op_work->osdev->dev, - &psoc_sync); - if (ret) { - ipa_err("op start ret: %d", ret); + if (qdf_is_recovering()) { + ipa_err("in recovering"); return; } __wlan_ipa_uc_fw_op_event_handler(data); - - osif_psoc_sync_trans_stop(psoc_sync); } /**