Kernel Tree For Xiaomi 11 Lite NE 5G
Go to file
Abhishek Singh 5a33171128 qcacld-3.0: Fix scan failure issue due to stale PE session
qcacld-2.0 to qcacld-3.0 propagation

If roaming is initiated by firmware, after getting the candidate
list the CSR will start preauth with the candidates and thus
preauth will be the active command in SME.

Now if at the same time connect is issued from supplicant,
HDD will queue disconnect cmd in SME queue and wait for disconnect
to get complete for 2 sec. Now there is a chance that channel
change along with preauth timeout can take more than 2 secs.
In this scenareo the disconnect will timeout in HDD and will
return connect failure to supplicant. Next supplicant will issue
disconnect which is ignored by HDD as disconnect is already been
queued in SME. Now if supplicant again sends the connect command,
as part of connect command CSR will remove the disconnect command
from the SME queue and queue this connect command.

On preauth timeout the preauth state machine checks if disconnect
is queued and if it is queued it will abort preauth. But in this
case disconnect is removed by the connect request and thus preauth
retry continues and if preauth is success handoff will be queued
in SME queue.

Now the connect request is processed and if this connect request's
BSSID is same as the BSSID of the roam candidate, as all the CSR
states for this BSSID session indicate roaming, instead of
join it will try to reassociate and continue changing the CSR states
again. Eventually this connect will fail. Next the handoff command
is processed and as part of handoff it will try to cleanup
original session, but as CSR states are changed by connect request
the original session is not cleaned up properly. This results in
stale PE session entry which does not allow the scan to be sent to
firmware, returning the cached results and thus 0 scan results.

To fix this:
- Increase the WLAN_WAIT_TIME_DISCONNECT to 5 sec to make sure all
  sessions are cleaned up before allowing the new connect to proceed.
- Increase the priority of preauth scans.

Change-Id: Id7cc1e6f3c31df8a8c8955eb3ff48cb60e5b5ab2
CRs-Fixed: 1048394
2016-08-27 15:29:57 -07:00
config qcacld-3.0: Set rx_mode to be NAPI for iHelium 2016-08-24 16:25:21 -07:00
core qcacld-3.0: Fix scan failure issue due to stale PE session 2016-08-27 15:29:57 -07:00
target/inc qcacld-3.0: Add packetlog bit in rx indication from firmware 2016-08-20 10:36:57 -07:00
uapi/linux qcacld-3.0: Changes to support WDI_EVENT_SW_EVENT for packetlog 2016-08-20 10:36:52 -07:00
Android.mk qcacld-3.0: Add new method to build/use driver based on targets 2016-04-25 22:55:34 -07:00
Kbuild qcacld-3.0: Add USB bus support (Kbuild) 2016-08-19 18:33:21 -07:00
Kconfig qcacld-3.0: Create new files for supporting NAN data path feature 2016-06-27 18:17:22 -07:00
Makefile qcacld-3.0: accept module name externally 2016-06-01 10:48:46 -07:00
README.txt Initial readme for WLAN Host Driver for iHelium 2015-04-06 11:45:23 -07:00

This is CNSS WLAN Host Driver for products starting from iHelium