Message ID | 20230830021131.5610-1-quic_bqiang@quicinc.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 9ae8c496d211155a3f220b63da364fba1a794292 |
Delegated to: | Kalle Valo |
Headers | show |
Series | wifi: ath12k: fix DMA unmap warning on NULL DMA address | expand |
On 8/29/2023 7:11 PM, Baochen Qiang wrote: > In ath12k_dp_tx(), if we reach fail_dma_unmap due to some errors, > current code does DMA unmap unconditionally on skb_cb->paddr_ext_desc. > However, skb_cb->paddr_ext_desc may be NULL and thus we get below > warning: > > kernel: [ 8887.076212] WARNING: CPU: 3 PID: 0 at drivers/iommu/dma-iommu.c:1077 iommu_dma_unmap_page+0x79/0x90 > > Fix it by checking skb_cb->paddr_ext_desc before unmap it. > > Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4 > > Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices") > Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com> Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> > --- > drivers/net/wireless/ath/ath12k/dp_tx.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath12k/dp_tx.c b/drivers/net/wireless/ath/ath12k/dp_tx.c > index 8874c815d7fa..c0ae2fd443cc 100644 > --- a/drivers/net/wireless/ath/ath12k/dp_tx.c > +++ b/drivers/net/wireless/ath/ath12k/dp_tx.c > @@ -330,8 +330,10 @@ int ath12k_dp_tx(struct ath12k *ar, struct ath12k_vif *arvif, > > fail_unmap_dma: > dma_unmap_single(ab->dev, ti.paddr, ti.data_len, DMA_TO_DEVICE); > - dma_unmap_single(ab->dev, skb_cb->paddr_ext_desc, > - sizeof(struct hal_tx_msdu_ext_desc), DMA_TO_DEVICE); > + if (skb_cb->paddr_ext_desc) > + dma_unmap_single(ab->dev, skb_cb->paddr_ext_desc, > + sizeof(struct hal_tx_msdu_ext_desc), > + DMA_TO_DEVICE); > > fail_remove_tx_buf: > ath12k_dp_tx_release_txbuf(dp, tx_desc, pool_id); > > base-commit: a62b0aeb556839fb6abb9835874443b08fe95598
Baochen Qiang <quic_bqiang@quicinc.com> wrote: > In ath12k_dp_tx(), if we reach fail_dma_unmap due to some errors, > current code does DMA unmap unconditionally on skb_cb->paddr_ext_desc. > However, skb_cb->paddr_ext_desc may be NULL and thus we get below > warning: > > kernel: [ 8887.076212] WARNING: CPU: 3 PID: 0 at drivers/iommu/dma-iommu.c:1077 iommu_dma_unmap_page+0x79/0x90 > > Fix it by checking skb_cb->paddr_ext_desc before unmap it. > > Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4 > > Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices") > Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com> > Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> > Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Patch applied to ath-next branch of ath.git, thanks. 9ae8c496d211 wifi: ath12k: fix DMA unmap warning on NULL DMA address
diff --git a/drivers/net/wireless/ath/ath12k/dp_tx.c b/drivers/net/wireless/ath/ath12k/dp_tx.c index 8874c815d7fa..c0ae2fd443cc 100644 --- a/drivers/net/wireless/ath/ath12k/dp_tx.c +++ b/drivers/net/wireless/ath/ath12k/dp_tx.c @@ -330,8 +330,10 @@ int ath12k_dp_tx(struct ath12k *ar, struct ath12k_vif *arvif, fail_unmap_dma: dma_unmap_single(ab->dev, ti.paddr, ti.data_len, DMA_TO_DEVICE); - dma_unmap_single(ab->dev, skb_cb->paddr_ext_desc, - sizeof(struct hal_tx_msdu_ext_desc), DMA_TO_DEVICE); + if (skb_cb->paddr_ext_desc) + dma_unmap_single(ab->dev, skb_cb->paddr_ext_desc, + sizeof(struct hal_tx_msdu_ext_desc), + DMA_TO_DEVICE); fail_remove_tx_buf: ath12k_dp_tx_release_txbuf(dp, tx_desc, pool_id);
In ath12k_dp_tx(), if we reach fail_dma_unmap due to some errors, current code does DMA unmap unconditionally on skb_cb->paddr_ext_desc. However, skb_cb->paddr_ext_desc may be NULL and thus we get below warning: kernel: [ 8887.076212] WARNING: CPU: 3 PID: 0 at drivers/iommu/dma-iommu.c:1077 iommu_dma_unmap_page+0x79/0x90 Fix it by checking skb_cb->paddr_ext_desc before unmap it. Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4 Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices") Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com> --- drivers/net/wireless/ath/ath12k/dp_tx.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) base-commit: a62b0aeb556839fb6abb9835874443b08fe95598