Files
android_kernel_samsung_sm86…/components
Abhishek Ambure 15885d348c qcacld-3.0: Allow switch to RSO STOP State while roam in progress
Problem scenario:
1) Host gets roam event from FW and RSO state is switched to
   ROAM_IN_PROGRESS.
2) Host gets reassoc response followed by FW down indication.
3) Host processes reassoc response in HDD and sends disassoc to
   FW as FW down indication received.
4) As a part of disassoc host tries to switch RSO state to STOP.
   But as present RSO state is ROAM_IN_PROGRESS and FW is down,
   host fails to send RSO stop command to FW and doesn't switch
   RSO state to STOP.
5) Lim disassoc send fails due to FW is down and host proceeds
   with lim_send_disassoc_cnf and lim_cleanup_rx_path.
6) In lim_cleanup_rx_path() host checks for present RSO state is
   ROAM_IN_PROGRESS and returns without calling lim_del_sta();
7) Thus peer delete and vdev delete is not send to FW and host
   vdev State machine stuck at SP-SUSPEND_DOWN which leads to
   peer and vdev reference leaks.

Fix:
Allow switch to RSO stop state while present RSO state is
ROAM_IN_PROGRESS.

Change-Id: I4a838ecd98a7ca377cd557d7a01a93ac53449595
CRs-Fixed: 2844647
2020-12-24 12:30:29 -08:00
..
2020-05-03 18:18:42 -07:00