qtnfmac: fix invalid STA state on EAPOL failure
authorSergey Matyukevich <sergey.matyukevich.os@quantenna.com>
Tue, 29 May 2018 12:00:05 +0000 (15:00 +0300)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 30 May 2018 19:20:17 +0000 (22:20 +0300)
commit480daa9cb62c14bbd1b87a01cd9bc10cc56dbf32
treebc0e53348851f3daec587d62bc454aea450f63b2
parent40d68dbb986d2116c15e70f63c419a5481d7b91c
qtnfmac: fix invalid STA state on EAPOL failure

Driver switches vif sta_state into QTNF_STA_CONNECTING when cfg80211
core initiates connect procedure. Further this state is changed either
to QTNF_STA_CONNECTED or to QTNF_STA_DISCONNECTED by BSS_JOIN and
BSS_LEAVE events from firmware. However it is possible that no such
events will be sent by firmware, e.g. if EAPOL timed out.

In this case vif sta_mode will remain in QTNF_STA_CONNECTING state and
all subsequent connection attempts will fail with -EBUSY error code.
Fix this by perfroming STA state transition from QTNF_STA_CONNECTING
to QTNF_STA_DISCONNECTED in cfg80211 disconnect callback.
No need to rely upon firmware events in this case.

Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
drivers/net/wireless/quantenna/qtnfmac/event.c