Browse Source

qcacld-3.0: Remove flush work from TWT kworker thread

wlan_twt_concurrency_update() calls the flush work internally.
So when the caller calls wlan_twt_concurrency_update api in
schedular context, flush work will block the schedular thread for
4 sec(twt enable/disable timeout value is 4sec). Because of this
the other request will be block till this time.

As part of fix, remove flush work and reduce twt enable/disable
timeout to 1 sec

Change-Id: I8f16da44b21cf54fcf2256aaef53371431e64aac
CRs-Fixed: 2963695
Jyoti Kumari 3 years ago
parent
commit
fa4e6b632a
1 changed files with 2 additions and 3 deletions
  1. 2 3
      core/hdd/src/wlan_hdd_twt.c

+ 2 - 3
core/hdd/src/wlan_hdd_twt.c

@@ -38,8 +38,8 @@
 #include <wlan_cp_stats_mc_ucfg_api.h>
 #include <wlan_mlme_twt_ucfg_api.h>
 
-#define TWT_DISABLE_COMPLETE_TIMEOUT 4000
-#define TWT_ENABLE_COMPLETE_TIMEOUT  4000
+#define TWT_DISABLE_COMPLETE_TIMEOUT 1000
+#define TWT_ENABLE_COMPLETE_TIMEOUT  1000
 
 #define TWT_FLOW_TYPE_ANNOUNCED 0
 #define TWT_FLOW_TYPE_UNANNOUNCED 1
@@ -4035,7 +4035,6 @@ void hdd_twt_update_work_handler(void *data)
 
 void wlan_twt_concurrency_update(struct hdd_context *hdd_ctx)
 {
-	qdf_flush_work(&hdd_ctx->twt_en_dis_work);
 	qdf_sched_work(0, &hdd_ctx->twt_en_dis_work);
 }