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

