qcacld-3.0: Send p2p ack indication directly to HDD from PE
qcacld-2.0 to qcacld-3.0 propagation During P2P functionality, Host will send GO NEG REQ and receives ACK completion from firmware which will be queued to indicate HDD. Meanwhile if host receives GO-NEG RESP it will be sent directly to HDD via function callback. In HDD as we got GO NEG RESP before ACK completion for GO-NEG REQ, HDD will generate pkt completion for GO NEG Request. Now GO NEG CONFORMATION frame will be sent and driver will be expecting completion for this. The GO NEG REQ ACK completion which got buffered in PE will be delivered to Supplicant and Supplicant assumes that this is the ACK for GO NEG CONF frame. This causes early termination of remain on channel due to which firmware may drop the GO NEG CONF frame and may not retry as ROC is terminated. Fix this by making ACK Completion indication to HDD via function callback. Git-commit: 32ddf4196f423b8eaea7ec6c0816e2961aa7fc45 Change-Id: I0dd3acb236b270839649d2becfdc007e7aae9fdd CRs-Fixed: 1012547 (cherry picked from commit a3996d421de7f55d5a6f7da19d7ff4b568ce7c50) (cherry picked from commit 42405db3bd3f4b10800cde8cdcd14f521461a5a7)
This commit is contained in:

committed by
qcabuildsw

parent
ed259c4236
commit
4577a9b955
@@ -155,7 +155,6 @@ typedef enum {
|
||||
/* Event send on WPS PBC probe request is received */
|
||||
eSAP_WPS_PBC_PROBE_REQ_EVENT,
|
||||
eSAP_REMAIN_CHAN_READY,
|
||||
eSAP_SEND_ACTION_CNF,
|
||||
eSAP_DISCONNECT_ALL_P2P_CLIENT,
|
||||
eSAP_MAC_TRIG_STOP_BSS_EVENT,
|
||||
/*
|
||||
@@ -445,7 +444,6 @@ typedef struct sap_Event_s {
|
||||
tSap_GetWPSPBCSessionEvent sapGetWPSPBCSessionEvent;
|
||||
/*eSAP_WPS_PBC_PROBE_REQ_EVENT */
|
||||
tSap_WPSPBCProbeReqEvent sapPBCProbeReqEvent;
|
||||
/* eSAP_SEND_ACTION_CNF */
|
||||
tSap_SendActionCnf sapActionCnf;
|
||||
/* eSAP_UNKNOWN_STA_JOIN */
|
||||
tSap_UnknownSTAJoinEvent sapUnknownSTAJoin;
|
||||
|
@@ -939,13 +939,6 @@ wlansap_roam_callback(void *ctx, tCsrRoamInfo *csr_roam_info, uint32_t roamId,
|
||||
eSAP_REMAIN_CHAN_READY,
|
||||
(void *) eSAP_STATUS_SUCCESS);
|
||||
break;
|
||||
case eCSR_ROAM_SEND_ACTION_CNF:
|
||||
sap_signal_hdd_event(sap_ctx, csr_roam_info,
|
||||
eSAP_SEND_ACTION_CNF,
|
||||
(void *) ((eSapStatus)
|
||||
((roam_result == eCSR_ROAM_RESULT_NONE) ?
|
||||
eSAP_STATUS_SUCCESS : eSAP_STATUS_FAILURE)));
|
||||
break;
|
||||
case eCSR_ROAM_DISCONNECT_ALL_P2P_CLIENTS:
|
||||
sap_signal_hdd_event(sap_ctx, csr_roam_info,
|
||||
eSAP_DISCONNECT_ALL_P2P_CLIENT,
|
||||
|
@@ -819,7 +819,6 @@ static uint8_t *sap_hdd_event_to_string(eSapHddEvent event)
|
||||
CASE_RETURN_STRING(eSAP_GET_WPSPBC_SESSION_EVENT);
|
||||
CASE_RETURN_STRING(eSAP_WPS_PBC_PROBE_REQ_EVENT);
|
||||
CASE_RETURN_STRING(eSAP_REMAIN_CHAN_READY);
|
||||
CASE_RETURN_STRING(eSAP_SEND_ACTION_CNF);
|
||||
CASE_RETURN_STRING(eSAP_DISCONNECT_ALL_P2P_CLIENT);
|
||||
CASE_RETURN_STRING(eSAP_MAC_TRIG_STOP_BSS_EVENT);
|
||||
CASE_RETURN_STRING(eSAP_UNKNOWN_STA_JOIN);
|
||||
@@ -2865,11 +2864,6 @@ QDF_STATUS sap_signal_hdd_event(ptSapContext sap_ctx,
|
||||
sap_ap_event.sapevt.sap_roc_ind.scan_id =
|
||||
sap_ctx->roc_ind_scan_id;
|
||||
break;
|
||||
case eSAP_SEND_ACTION_CNF:
|
||||
sap_ap_event.sapHddEventCode = eSAP_SEND_ACTION_CNF;
|
||||
sap_ap_event.sapevt.sapActionCnf.actionSendSuccess =
|
||||
(eSapStatus) context;
|
||||
break;
|
||||
|
||||
case eSAP_DISCONNECT_ALL_P2P_CLIENT:
|
||||
sap_ap_event.sapHddEventCode = eSAP_DISCONNECT_ALL_P2P_CLIENT;
|
||||
|
Reference in New Issue
Block a user