Sfoglia il codice sorgente

qcacld-3.0: Report correct TX ack status to supplicant

Host driver reports TX ACK status as success when FW sends
failure status. Due to this supplicant is not retrying the
P2P confirmation frame resulting in Go Negotiation failure.
P2P negotiation state machine can be messed up for other
negotiation action frames as well.

Change-Id: I9a22bd542aea32c7cbac11107fe8b6c9785a2ac1
CRs-Fixed: 1079970
Archana Ramachandran 8 anni fa
parent
commit
249f038677
1 ha cambiato i file con 3 aggiunte e 2 eliminazioni
  1. 3 2
      core/mac/src/pe/lim/lim_p2p.c

+ 3 - 2
core/mac/src/pe/lim/lim_p2p.c

@@ -407,10 +407,11 @@ void lim_send_sme_mgmt_frame_ind(tpAniSirGlobal pMac, uint8_t frameType,
 	return;
 }
 
-QDF_STATUS lim_p2p_action_cnf(tpAniSirGlobal pMac, uint32_t txCompleteSuccess)
+QDF_STATUS lim_p2p_action_cnf(tpAniSirGlobal pMac, uint32_t tx_status)
 {
 	QDF_STATUS status;
 	uint32_t mgmt_frame_sessionId;
+	bool tx_complete_ack = (tx_status) ? false : true;
 
 	status = pe_acquire_global_lock(&pMac->lim);
 	if (QDF_IS_STATUS_SUCCESS(status)) {
@@ -429,7 +430,7 @@ QDF_STATUS lim_p2p_action_cnf(tpAniSirGlobal pMac, uint32_t txCompleteSuccess)
 					 mgmt_frame_sessionId);
 			if (pMac->p2p_ack_ind_cb)
 				pMac->p2p_ack_ind_cb(mgmt_frame_sessionId,
-							txCompleteSuccess);
+						     tx_complete_ack);
 		}
 	}