qcacld-3.0: Fix smmu fault when inject deauth frame
1. The original mgmt send path changed by converged p2p component, now wma_tx_packet() will not invoke when sending station mode action frames, it invokes p2p_mgmt_tx() instead. But for tx buffers of PMF frames sending to some target require to do bi-direction dma map to pass smmu sanity check, which is missed in p2p_mgmt_tx() path. 2. The offchan flag passed to wlan_hdd_mgmt_tx() is not always accurate. There have been cases where the flag is set even though the operation is taking place on the home channel, and blindly following the flag leads to an unnecessary ROC. Fix it by adding QDF_NBUF_CB_TX_DMA_BI_MAP to new p2p mgmt tx path and bring back home channel check to override the offchan flag if necessary. Change-Id: I9589157e57e95d0c61a432f87a07630c4b77f757 CRs-Fixed: 2423341
This commit is contained in:
@@ -1548,6 +1548,13 @@ static QDF_STATUS p2p_populate_rmf_field(struct tx_action_context *tx_ctx,
|
||||
*ppbuf = frame;
|
||||
*ppkt = pkt;
|
||||
*size = frame_len;
|
||||
/*
|
||||
* Some target which support sending mgmt frame based on htt
|
||||
* would DMA write this PMF tx frame buffer, it may cause smmu
|
||||
* check permission fault, set a flag to do bi-direction DMA
|
||||
* map, normal tx unmap is enough for this case.
|
||||
*/
|
||||
QDF_NBUF_CB_TX_DMA_BI_MAP(pkt) = 1;
|
||||
}
|
||||
|
||||
return status;
|
||||
|
مرجع در شماره جدید
Block a user