From bf8f310071d900dec038d517a136d94e94dbe42a Mon Sep 17 00:00:00 2001 From: Ye Jiao Date: Fri, 20 Nov 2020 10:51:19 +0800 Subject: [PATCH] DO NOT MERGE: Tune up kMaxStopCompleteWaitMs to fix NE On a low-end device which does not support STA-SAP concurrency, if STA is currently enabled and user/app tries to enable SAP, then Wi-Fi needs to reconfigure and stop Wi-Fi HAL first. Among other stopping actions, HAL needs to set global_handle_ to nullptr and send "Exit" to wifi_event_loop then waits no more than kMaxStopCompleteWaitMs. If the wait times out, then reconfiguration fails and causes Wi-Fi controller returns to STA mode and creates new STA iface indirectly. In this process, HAL needs to access global_handle_, but since it was cleared, we can only get a Native Exception. Because there is no proper error recovery for UNKNOWN errors, I suggest to simply set kMaxStopCompleteWaitMs to a higher value to circumvent this timing issue. Bug: 173760638 Change-Id: I1b5a0a7a554409704c017ffaf52a767b9424c61e --- wifi/1.4/default/wifi_legacy_hal.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wifi/1.4/default/wifi_legacy_hal.cpp b/wifi/1.4/default/wifi_legacy_hal.cpp index 29123bfe47..d7a5d6c380 100644 --- a/wifi/1.4/default/wifi_legacy_hal.cpp +++ b/wifi/1.4/default/wifi_legacy_hal.cpp @@ -36,7 +36,7 @@ static constexpr uint32_t kMaxGscanFrequenciesForBand = 64; static constexpr uint32_t kLinkLayerStatsDataMpduSizeThreshold = 128; static constexpr uint32_t kMaxWakeReasonStatsArraySize = 32; static constexpr uint32_t kMaxRingBuffers = 10; -static constexpr uint32_t kMaxStopCompleteWaitMs = 100; +static constexpr uint32_t kMaxStopCompleteWaitMs = 300; static constexpr char kDriverPropName[] = "wlan.driver.status"; // Helper function to create a non-const char* for legacy Hal API's.