wlan: Handle disconnects in reassoc state.

This fix addresses a bug wherein we could be stuck in reassoc state
forever, thereby preventing all scans.

In CL651697, We block all HDD-triggered scans during one of the four
handoff states: report scan, pre-auth, pre-auth done and reassoc. This
was done to protect roaming algorithm from getting into erroneous states
during concurrency operation wherein P2P "remain on channel" mode can
inhibit seamless roaming.

Our current code could get stuck in reassoc state if we disconnect while
we are in that state. This is because we do not transition to INIT state
in csrNeighborRoamIndicateDisconnect from reassoc state. However, it is
OK to transit provided we are NOT in Disassoc Handoff sub-state. This is
because we receive disconnect notification for the old AP in Disassoc
Handoff sub-state. So, any disconnect indications received in sub-states
other than Disassoc Handoff should be treated as a trigger to transition
from reassoc state to INIT.

Change-Id: Ie320c252490f683d349ddfb80aaae52c09e006ee
CR-Fixed: 412050
1 file changed
tree: 2ce03e170a8b5ffa3317d5d2cc605bcf5eabfbc7
  1. CORE/
  2. firmware_bin/
  3. riva/
  4. Kconfig
  5. Makefile