qcacld-3.0: Fix 'sae_info' undeclared issue

Structure csr_roam_info member 'sae_info' is defined only when
WLAN_FEATURE_SAE is defined.
But function csr_process_roam_auth_offload_callback() call it
without any checking.

Because function csr_process_roam_auth_offload_callback() processes
WPA3 SAE info, so rename it, and move it to macro WLAN_FEATURE_SAE.

Change-Id: If3d5c1e6739fbd7bee24d19fbbab3495a9a6f8f6
CRs-Fixed: 2532693
This commit is contained in:
Yu Ouyang 2019-09-23 11:25:03 +08:00 • committed by nshrivas
commit 7117897437
2 changed files with 58 additions and 62 deletions

View file

@ -409,20 +409,6 @@ QDF_STATUS
csr_roam_auth_offload_callback(struct mac_context *mac_ctx,
uint8_t vdev_id,
struct qdf_mac_addr bssid);
/**
* csr_process_roam_auth_offload_callback() - API to trigger the
* WPA3 pre-auth event for candidate AP received from firmware.
* @vdev_id: vdev id
* @roam_bssid: Candidate BSSID to roam
*
* This function calls the hdd_sme_roam_callback with reason
* eCSR_ROAM_SAE_COMPUTE to trigger SAE auth to supplicant.
*/
QDF_STATUS
csr_process_roam_auth_offload_callback(struct mac_context *mac_ctx,
uint8_t vdev_id,
struct qdf_mac_addr roam_bssid);
#else
static inline QDF_STATUS csr_roam_synch_callback(struct mac_context *mac,
struct roam_offload_synch_ind *roam_synch_data,
@ -438,14 +424,6 @@ csr_roam_auth_offload_callback(struct mac_context *mac_ctx,
{
return QDF_STATUS_E_NOSUPPORT;
}
static inline QDF_STATUS
csr_process_roam_auth_offload_callback(struct mac_context *mac_ctx,
uint8_t vdev_id,
struct qdf_mac_addr roam_bssid)
{
return QDF_STATUS_E_NOSUPPORT;
}
#endif
void csr_neighbor_roam_state_transition(struct mac_context *mac_ctx,
uint8_t newstate, uint8_t session);

View file

@ -15373,10 +15373,67 @@ static void csr_update_sae_config(struct join_req *csr_join_req,
csr_join_req->sae_pmk_cached,
QDF_MAC_ADDR_ARRAY(csr_join_req->bssDescription.bssId));
}
/**
* csr_process_roam_auth_sae_callback() - API to trigger the
* WPA3 pre-auth event for candidate AP received from firmware.
* @mac_ctx: Global mac context pointer
* @vdev_id: vdev id
* @roam_bssid: Candidate BSSID to roam
*
* This function calls the hdd_sme_roam_callback with reason
* eCSR_ROAM_SAE_COMPUTE to trigger SAE auth to supplicant.
*/
static QDF_STATUS
csr_process_roam_auth_sae_callback(struct mac_context *mac_ctx,
uint8_t vdev_id,
struct qdf_mac_addr roam_bssid)
{
struct csr_roam_info *roam_info;
struct sir_sae_info sae_info;
struct csr_roam_session *session = CSR_GET_SESSION(mac_ctx, vdev_id);
if (!session) {
sme_err("WPA3 Preauth event with invalid session id:%d",
vdev_id);
return QDF_STATUS_E_FAILURE;
}
roam_info = qdf_mem_malloc(sizeof(*roam_info));
if (!roam_info)
return QDF_STATUS_E_FAILURE;
sae_info.msg_len = sizeof(sae_info);
sae_info.vdev_id = vdev_id;
sae_info.ssid.length = session->connectedProfile.SSID.length;
qdf_mem_copy(sae_info.ssid.ssId, session->connectedProfile.SSID.ssId,
sae_info.ssid.length);
qdf_mem_copy(sae_info.peer_mac_addr.bytes,
roam_bssid.bytes, QDF_MAC_ADDR_SIZE);
roam_info->sae_info = &sae_info;
csr_roam_call_callback(mac_ctx, vdev_id, roam_info, 0,
eCSR_ROAM_SAE_COMPUTE, eCSR_ROAM_RESULT_NONE);
qdf_mem_free(roam_info);
return QDF_STATUS_SUCCESS;
}
#else
static void csr_update_sae_config(struct join_req *csr_join_req,
struct mac_context *mac, struct csr_roam_session *session)
{ }
QDF_STATUS
csr_process_roam_auth_sae_callback(struct mac_context *mac_ctx,
uint8_t vdev_id,
struct qdf_mac_addr roam_bssid)
{
return QDF_STATUS_E_NOSUPPORT;
}
#endif
/**
@ -21959,45 +22016,6 @@ csr_roam_synch_callback(struct mac_context *mac_ctx,
return status;
}
QDF_STATUS
csr_process_roam_auth_offload_callback(struct mac_context *mac_ctx,
uint8_t vdev_id,
struct qdf_mac_addr roam_bssid)
{
struct csr_roam_info *roam_info;
struct sir_sae_info sae_info;
struct csr_roam_session *session = CSR_GET_SESSION(mac_ctx, vdev_id);
if (!session) {
sme_err("WPA3 Preauth event with invalid session id:%d",
vdev_id);
return QDF_STATUS_E_FAILURE;
}
roam_info = qdf_mem_malloc(sizeof(*roam_info));
if (!roam_info)
return QDF_STATUS_E_FAILURE;
sae_info.msg_len = sizeof(sae_info);
sae_info.vdev_id = vdev_id;
sae_info.ssid.length = session->connectedProfile.SSID.length;
qdf_mem_copy(sae_info.ssid.ssId, session->connectedProfile.SSID.ssId,
sae_info.ssid.length);
qdf_mem_copy(sae_info.peer_mac_addr.bytes,
roam_bssid.bytes, QDF_MAC_ADDR_SIZE);
roam_info->sae_info = &sae_info;
csr_roam_call_callback(mac_ctx, vdev_id, roam_info, 0,
eCSR_ROAM_SAE_COMPUTE, eCSR_ROAM_RESULT_NONE);
qdf_mem_free(roam_info);
return QDF_STATUS_SUCCESS;
}
QDF_STATUS
csr_roam_auth_offload_callback(struct mac_context *mac_ctx,
uint8_t vdev_id, struct qdf_mac_addr bssid)
@ -22008,7 +22026,7 @@ csr_roam_auth_offload_callback(struct mac_context *mac_ctx,
if (!QDF_IS_STATUS_SUCCESS(status))
return status;
status = csr_process_roam_auth_offload_callback(mac_ctx, vdev_id, bssid);
status = csr_process_roam_auth_sae_callback(mac_ctx, vdev_id, bssid);
sme_release_global_lock(&mac_ctx->sme);