qcacmn: Create IPA SMMU maps for host replenished bufs

Buffers replenished post processing entries in the
REO2TCL ring do not have ipa smmu mappings created
when RX_PREALLOC_BUFFER_POOL feature is disabled.
This will result in SMMU fault when IPA HW accesses
such replenished buffers.

Fix is to create IPA SMMU mapping for replenished buffers
when RX_PREALLOC_BUFFER_POOL feature is disabled as well.

Change-Id: I0fe611a1279b91a3e45bc269348e05de9015d596
CRs-Fixed: 2915686
This commit is contained in:
Yeshwanth Sriram Guntuka
2021-04-05 19:00:15 +05:30
committed by snandini
parent 7d8f444b48
commit 6512d66c27
2 changed files with 6 additions and 10 deletions

View File

@@ -243,6 +243,11 @@ dp_pdev_nbuf_alloc_and_map_replenish(struct dp_soc *dp_soc,
nbuf_frag_info_t->paddr = nbuf_frag_info_t->paddr =
qdf_nbuf_get_frag_paddr((nbuf_frag_info_t->virt_addr).nbuf, 0); qdf_nbuf_get_frag_paddr((nbuf_frag_info_t->virt_addr).nbuf, 0);
dp_ipa_handle_rx_buf_smmu_mapping(dp_soc,
(qdf_nbuf_t)((nbuf_frag_info_t->virt_addr).nbuf),
rx_desc_pool->buf_size,
true);
ret = dp_check_paddr(dp_soc, &((nbuf_frag_info_t->virt_addr).nbuf), ret = dp_check_paddr(dp_soc, &((nbuf_frag_info_t->virt_addr).nbuf),
&nbuf_frag_info_t->paddr, &nbuf_frag_info_t->paddr,
rx_desc_pool); rx_desc_pool);

View File

@@ -260,21 +260,12 @@ dp_rx_buffer_pool_nbuf_map(struct dp_soc *soc,
{ {
QDF_STATUS ret = QDF_STATUS_SUCCESS; QDF_STATUS ret = QDF_STATUS_SUCCESS;
if (!QDF_NBUF_CB_PADDR((nbuf_frag_info_t->virt_addr).nbuf)) { if (!QDF_NBUF_CB_PADDR((nbuf_frag_info_t->virt_addr).nbuf))
ret = qdf_nbuf_map_nbytes_single(soc->osdev, ret = qdf_nbuf_map_nbytes_single(soc->osdev,
(nbuf_frag_info_t->virt_addr).nbuf, (nbuf_frag_info_t->virt_addr).nbuf,
QDF_DMA_FROM_DEVICE, QDF_DMA_FROM_DEVICE,
rx_desc_pool->buf_size); rx_desc_pool->buf_size);
if (qdf_unlikely(QDF_IS_STATUS_ERROR(ret)))
return ret;
}
dp_ipa_handle_rx_buf_smmu_mapping(soc,
(qdf_nbuf_t)((nbuf_frag_info_t->virt_addr).nbuf),
rx_desc_pool->buf_size,
true);
return ret; return ret;
} }