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:
@@ -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");
|
||||
|
Odkázat v novém úkolu
Zablokovat Uživatele