The SMP write barrier between writing the mailbox header and ringing
the mailbox register is redundant: rte_write64() begins with
rte_io_wmb(), which already orders the header write before the
trigger, and does so against the device rather than only within the
inner shareable domain.

Signed-off-by: Stephen Hemminger <[email protected]>
---
 drivers/common/octeontx/octeontx_mbox.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/common/octeontx/octeontx_mbox.c 
b/drivers/common/octeontx/octeontx_mbox.c
index 9e0bbf453f..8b0da3a98e 100644
--- a/drivers/common/octeontx/octeontx_mbox.c
+++ b/drivers/common/octeontx/octeontx_mbox.c
@@ -113,8 +113,10 @@ mbox_send_request(struct mbox *m, struct octeontx_mbox_hdr 
*hdr,
 
        /* Write the msg header */
        rte_write64(new_hdr.u64, ram_mbox_hdr);
-       rte_smp_wmb();
-       /* Notify PF about the new msg - write to MBOX reg generates PF IRQ */
+       /* Notify PF about the new msg - write to MBOX reg generates PF IRQ.
+        * rte_write64() issues rte_io_wmb() which orders the header write
+        * before the trigger; no separate barrier is needed.
+        */
        rte_write64(0, m->reg);
 }
 
-- 
2.53.0

Reply via email to