qcacmn: Release SMMU IPA mappings after pipes are disabled
Currenlty RX buffer mappings to IPA domain are released when REO2IPA ring are disabled but before IPA pipes are disabled. There will be chances that IPA still accessing buffers with mappings released, which could lead to SMMU fault. Fix is to release SMMU mappings to IPA domain until IPA pipes are disabled. Change-Id: I62ac99e6a9b83cfd1e70a17ffacdea3ca3720a5c CRs-Fixed: 2436812
Цей коміт міститься в:
@@ -748,8 +748,6 @@ QDF_STATUS dp_ipa_disable_autonomy(struct cdp_pdev *ppdev)
|
||||
soc->reo_remapped = false;
|
||||
qdf_spin_unlock_bh(&soc->remap_lock);
|
||||
|
||||
dp_ipa_handle_rx_buf_pool_smmu_mapping(soc, pdev, false);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -1508,17 +1506,19 @@ QDF_STATUS dp_ipa_enable_pipes(struct cdp_pdev *ppdev)
|
||||
*/
|
||||
QDF_STATUS dp_ipa_disable_pipes(struct cdp_pdev *ppdev)
|
||||
{
|
||||
struct dp_pdev *pdev = (struct dp_pdev *)ppdev;
|
||||
struct dp_soc *soc = pdev->soc;
|
||||
QDF_STATUS result;
|
||||
|
||||
result = qdf_ipa_wdi_disable_pipes();
|
||||
if (result) {
|
||||
if (result)
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
||||
"%s: Disable WDI PIPE fail, code %d",
|
||||
__func__, result);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
dp_ipa_handle_rx_buf_pool_smmu_mapping(soc, pdev, false);
|
||||
|
||||
return result ? QDF_STATUS_E_FAILURE : QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Посилання в новій задачі
Заблокувати користувача