qcacld-3.0: Use peer to get the cipher to decide MIC length

Driver uses cipher stored in vdev to get the MIC length, which
may get updated if multiple peer(TDLS peer in STA case) get
connected to the vdev. Thus depending on latest peer cipher type
the MIC length will be calculated for all peers.

To fix store cipher info in peer and use it to calculate MIC length
for the frame.

Change-Id: I8afbf9a3bb43c294dbacbbaa7fa0746600937d11
CRs-Fixed: 2428482
Tento commit je obsažen v:
Abhishek Singh
2019-04-04 12:11:57 +05:30
odevzdal nshrivas
rodič c118c88688
revize 64350c5d68
4 změnil soubory, kde provedl 240 přidání a 5 odebrání

Zobrazit soubor

@@ -125,7 +125,28 @@ QDF_STATUS ucfg_mlme_init(void)
mlme_err("unable to register psoc create handle");
return status;
}
status = ucfg_mlme_vdev_init();
if (QDF_IS_STATUS_ERROR(status))
return status;
status = wlan_objmgr_register_peer_create_handler(
WLAN_UMAC_COMP_MLME,
mlme_peer_object_created_notification,
NULL);
if (QDF_IS_STATUS_ERROR(status)) {
mlme_err("peer create register notification failed");
return QDF_STATUS_E_FAILURE;
}
status = wlan_objmgr_register_peer_destroy_handler(
WLAN_UMAC_COMP_MLME,
mlme_peer_object_destroyed_notification,
NULL);
if (QDF_IS_STATUS_ERROR(status)) {
mlme_err("peer destroy register notification failed");
return QDF_STATUS_E_FAILURE;
}
return status;
}
@@ -134,6 +155,20 @@ QDF_STATUS ucfg_mlme_deinit(void)
{
QDF_STATUS status;
status = wlan_objmgr_unregister_peer_destroy_handler(
WLAN_UMAC_COMP_MLME,
mlme_peer_object_destroyed_notification,
NULL);
if (QDF_IS_STATUS_ERROR(status))
mlme_err("unable to unregister peer destroy handle");
status = wlan_objmgr_unregister_peer_create_handler(
WLAN_UMAC_COMP_MLME,
mlme_peer_object_created_notification,
NULL);
if (QDF_IS_STATUS_ERROR(status))
mlme_err("unable to unregister peer create handle");
status = ucfg_mlme_vdev_deinit();
if (QDF_IS_STATUS_ERROR(status))
mlme_err("unable to unregister vdev destroy handle");