wlan: TL pending data buff handling is 64-bit clean.
vosPendingDataBuff is updated atomically by calling
vos_atomic_set_U32 but when compiling for 64-Bit this is giving
errors because of direct typecasting from struct pointer to
integer.
New vos_atomic_set API is implemented and vosPendingDataBuff
will now be modified using the new API
Change-Id: I81c53fd3258f2cda283a2e6c4b8b93a71b5d5cc3
CRs-Fixed: 573475.
diff --git a/CORE/TL/src/wlan_qct_tl.c b/CORE/TL/src/wlan_qct_tl.c
index 151811e..2f93c8d 100644
--- a/CORE/TL/src/wlan_qct_tl.c
+++ b/CORE/TL/src/wlan_qct_tl.c
@@ -2417,8 +2417,8 @@
}
- vos_atomic_set_U32( (v_U32_t*)&pTLCb->tlBAPClient.vosPendingDataBuff,
- (v_U32_t)vosDataBuff);
+ vos_atomic_set( (uintptr_t*)&pTLCb->tlBAPClient.vosPendingDataBuff,
+ (uintptr_t)vosDataBuff);
/*------------------------------------------------------------------------
Check if thre are enough resources for transmission and tx is not
@@ -3205,8 +3205,8 @@
/*Failing the tx for the previous packet enqued by PE*/
- //vos_atomic_set_U32( (v_U32_t*)&pTLCb->tlMgmtFrmClient.vosPendingDataBuff,
- // (v_U32_t)NULL);
+ //vos_atomic_set( (uintptr_t*)&pTLCb->tlMgmtFrmClient.vosPendingDataBuff,
+ // (uintptr_t)NULL);
//vos_pkt_get_user_data_ptr( vosTempBuff, VOS_PKT_USER_DATA_ID_TL,
// (v_PVOID_t)&pfnTxComp);
@@ -3289,9 +3289,8 @@
(v_PVOID_t)WLANTL_TxCompDefaultCb);
}
-
- vos_atomic_set_U32( (v_U32_t*)&pTLCb->tlMgmtFrmClient.vosPendingDataBuff,
- (v_U32_t)vosFrmBuf);
+ vos_atomic_set( (uintptr_t*)&pTLCb->tlMgmtFrmClient.vosPendingDataBuff,
+ (uintptr_t)vosFrmBuf);
/*------------------------------------------------------------------------
Check if thre are enough resources for transmission and tx is not
@@ -3306,7 +3305,7 @@
{
TLLOGP(VOS_TRACE( VOS_MODULE_ID_TL, VOS_TRACE_LEVEL_FATAL,
"WLAN TL:WDA_DS_StartXmit fails. vosStatus %d", vosStatus));
- vos_atomic_set_U32( (v_U32_t*)&pTLCb->tlMgmtFrmClient.vosPendingDataBuff,0);
+ vos_atomic_set( (uintptr_t*)&pTLCb->tlMgmtFrmClient.vosPendingDataBuff,0);
}
return vosStatus;
@@ -4046,7 +4045,7 @@
vos_pkt_chain_packet( vosDataBuff, pTLCb->vosTxFCBuf, 1 /*true*/ );
- vos_atomic_set_U32( (v_U32_t*)&pTLCb->vosTxFCBuf, (v_U32_t)NULL);
+ vos_atomic_set( (uintptr_t*)&pTLCb->vosTxFCBuf, (uintptr_t) NULL);
/*FC frames cannot be delayed*/
pTLCb->bUrgent = TRUE;
@@ -4091,8 +4090,8 @@
pTLCb->tlMgmtFrmClient.vosPendingDataBuff,
1 /*true*/ );
- vos_atomic_set_U32( (v_U32_t*)&pTLCb->tlMgmtFrmClient.
- vosPendingDataBuff, (v_U32_t)NULL);
+ vos_atomic_set( (uintptr_t*)&pTLCb->tlMgmtFrmClient.
+ vosPendingDataBuff, (uintptr_t)NULL);
/*management frames cannot be delayed*/
pTLCb->bUrgent = TRUE;
@@ -4135,8 +4134,8 @@
/*BAP frames cannot be delayed*/
pTLCb->bUrgent = TRUE;
- vos_atomic_set_U32( (v_U32_t*)&pTLCb->tlBAPClient.vosPendingDataBuff,
- (v_U32_t)NULL);
+ vos_atomic_set( (uintptr_t*)&pTLCb->tlBAPClient.vosPendingDataBuff,
+ (uintptr_t) NULL);
/*Update remaining len from SSC */
uRemaining -= (usPktLen + WDA_DXE_HEADER_SIZE);