]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
RDMA/irdma: Remove redundant dma_wmb() before writel()
authorJacob Moroni <jmoroni@google.com>
Sat, 3 Jan 2026 17:25:17 +0000 (17:25 +0000)
committerLeon Romanovsky <leon@kernel.org>
Tue, 13 Jan 2026 13:01:37 +0000 (08:01 -0500)
A dma_wmb() is not necessary before a writel() because writel()
already has an even stronger store barrier. A dma_wmb() is only
required to order writes to consistent/DMA memory whereas the
barrier in writel() is specified to order writes to DMA memory as
well as MMIO.

Signed-off-by: Jacob Moroni <jmoroni@google.com>
Link: https://patch.msgid.link/20260103172517.2088895-1-jmoroni@google.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/irdma/ctrl.c
drivers/infiniband/hw/irdma/uk.c

index 081551da763a3294eee937faa592637c24e8a497..022fcdfab339242c3d1fa1a50fbf5440a75d310f 100644 (file)
@@ -3887,8 +3887,6 @@ void irdma_sc_ccq_arm(struct irdma_sc_cq *ccq)
        set_64bit_val(ccq->cq_uk.shadow_area, 32, temp_val);
        spin_unlock_irqrestore(&ccq->dev->cqp_lock, flags);
 
-       dma_wmb(); /* make sure shadow area is updated before arming */
-
        writel(ccq->cq_uk.cq_id, ccq->dev->cq_arm_db);
 }
 
index 91669326d46456791c257b70b2dda6a5b8b98587..ac3721a5747a1e1770794943218dc0a06372afb0 100644 (file)
@@ -114,7 +114,6 @@ void irdma_clr_wqes(struct irdma_qp_uk *qp, u32 qp_wqe_idx)
  */
 void irdma_uk_qp_post_wr(struct irdma_qp_uk *qp)
 {
-       dma_wmb();
        writel(qp->qp_id, qp->wqe_alloc_db);
 }
 
@@ -1107,8 +1106,6 @@ void irdma_uk_cq_request_notification(struct irdma_cq_uk *cq,
 
        set_64bit_val(cq->shadow_area, 32, temp_val);
 
-       dma_wmb(); /* make sure WQE is populated before valid bit is set */
-
        writel(cq->cq_id, cq->cqe_alloc_db);
 }