mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
qcacmn: Fix double dmap problem in htc
For control messages, a path in HTC was performing double dmamaps and this was, in time, causing dmamap failures on SMMU. Change-Id: I19f7e13a0a19404fe1161127b10f52225b6a4248 CRs-Fixed: 2151773
This commit is contained in:
parent
b4e12686e6
commit
8969ad7fa8
1 changed files with 13 additions and 8 deletions
|
|
@ -1500,15 +1500,20 @@ static inline QDF_STATUS __htc_send_pkt(HTC_HANDLE HTCHandle,
|
|||
* Now that the HTC frame header has been added, the netbuf can
|
||||
* be mapped. This only applies to non-data frames, since data
|
||||
* frames were already mapped as they entered into the driver.
|
||||
* For flow control enabled endpoints mapping is done in
|
||||
* htc_issue_packets and for non flow control enabled endpoints
|
||||
* its done here.
|
||||
*/
|
||||
status = qdf_nbuf_map(target->osdev,
|
||||
GET_HTC_PACKET_NET_BUF_CONTEXT(pPacket),
|
||||
QDF_DMA_TO_DEVICE);
|
||||
if (status != QDF_STATUS_SUCCESS) {
|
||||
AR_DEBUG_PRINTF(ATH_DEBUG_ERR,
|
||||
("%s: nbuf map failed, endpoint %pK, seq_no. %d\n",
|
||||
__func__, pEndpoint, pEndpoint->SeqNo));
|
||||
return status;
|
||||
if (!IS_TX_CREDIT_FLOW_ENABLED(pEndpoint)) {
|
||||
status = qdf_nbuf_map(target->osdev,
|
||||
GET_HTC_PACKET_NET_BUF_CONTEXT(pPacket),
|
||||
QDF_DMA_TO_DEVICE);
|
||||
if (status != QDF_STATUS_SUCCESS) {
|
||||
AR_DEBUG_PRINTF(ATH_DEBUG_ERR,
|
||||
("%s: nbuf map failed, endpoint %pK, seq_no. %d\n",
|
||||
__func__, pEndpoint, pEndpoint->SeqNo));
|
||||
return status;
|
||||
}
|
||||
}
|
||||
|
||||
pPacket->PktInfo.AsTx.Flags |= HTC_TX_PACKET_FLAG_FIXUP_NETBUF;
|
||||
|
|
|
|||
Loading…
Reference in a new issue