qcacld-3.0: Set peer state to AUTHORIZE after 4way handshake

Firmware peer state needs to be set to AUTHORIZE only after
completing the 4 way handshake. In failure scenario,
host configured AUTHORIZE state before 4 way handshake and
it triggered assert in the firmware.

Peer state moved to connection in progress/CONN after successful
association and AUTH state after successful 4way handshake.

Change-Id: I5e3d94843443d0fc2612a918b5c14479f91914d8
CRs-Fixed: 2580929
This commit is contained in:
Sandeep Puligilla 2019-12-10 14:45:18 -08:00 • committed by nshrivas
commit 0f54d03172

View file

@ -2050,23 +2050,26 @@ QDF_STATUS hdd_update_dp_vdev_flags(void *cbk_data,
* @adapter: pointer to adapter
* @roam_info: pointer to roam info
* @mac_addr: peer mac address
* @sta_state: peer state
*
* Return: QDF_STATUS enumeration
*/
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
static QDF_STATUS hdd_conn_change_peer_state(struct hdd_adapter *adapter,
struct csr_roam_info *roam_info,
uint8_t *mac_addr)
uint8_t *mac_addr,
enum ol_txrx_peer_state sta_state)
{
return hdd_change_peer_state(adapter, mac_addr, OL_TXRX_PEER_STATE_AUTH,
return hdd_change_peer_state(adapter, mac_addr, sta_state,
roam_info->roamSynchInProgress);
}
#else
static QDF_STATUS hdd_conn_change_peer_state(struct hdd_adapter *adapter,
struct csr_roam_info *roam_info,
uint8_t *mac_addr)
uint8_t *mac_addr,
enum ol_txrx_peer_state sta_state)
{
return hdd_change_peer_state(adapter, mac_addr, OL_TXRX_PEER_STATE_AUTH,
return hdd_change_peer_state(adapter, mac_addr, sta_state,
false);
}
#endif
@ -2162,7 +2165,8 @@ QDF_STATUS hdd_roam_register_sta(struct hdd_adapter *adapter,
*/
qdf_status = hdd_conn_change_peer_state(
adapter, roam_info,
txrx_desc.peer_addr.bytes);
txrx_desc.peer_addr.bytes,
OL_TXRX_PEER_STATE_AUTH);
hdd_conn_set_authenticated(adapter, true);
hdd_objmgr_set_peer_mlme_auth_state(adapter->vdev, true);
@ -2173,7 +2177,8 @@ QDF_STATUS hdd_roam_register_sta(struct hdd_adapter *adapter,
qdf_status = hdd_conn_change_peer_state(
adapter, roam_info,
txrx_desc.peer_addr.bytes);
txrx_desc.peer_addr.bytes,
OL_TXRX_PEER_STATE_CONN);
hdd_conn_set_authenticated(adapter, false);
hdd_objmgr_set_peer_mlme_auth_state(adapter->vdev, false);