08c3b4d0b8918362445d2e6c8b87b35c7c5a8bc1

Connection completion handler is called from two scenarios. Scenario 1: Called via connection flush with lock held cm_disconnect_complete()--> cm_flush_pending_request() acquired lock here--> cm_handle_connect_flush()--> cm_notify_connect_complete() Scenario 2: Called via connection response without lock held In first scenario, cm_notify_connect_complete() calls cm_is_connect_id_reassoc_in_non_connected() to check if connect request is a reassoc req and received in not connected state. This function tries to auqire same lock which leads to dead lock. To fix this issue, check if cm_notify_connect_complete() is called with lock held or not. If not, acquire lock and call cm_is_connect_id_reassoc_in_non_connected(). This prevents dead lock in scenario 1 and allows calling cm_is_connect_id_reassoc_in_non_connected() with lock held for scenario 2. CRs-Fixed: 3351119 Change-Id: I192090777cb2cf0d604e2670a317aaf6f320d086
This is CNSS WLAN Host Driver for products starting from iHelium
Descrição
Languages
C
98.7%
C++
0.9%
Makefile
0.3%
Starlark
0.1%