[RFC 20/32] crypto/octeontx: use IO barrier before doorbell
Stephen Hemminger
stephen at networkplumber.org
Wed Jul 29 19:54:13 CEST 2026
The doorbell is written with rte_write64_relaxed(), so the barrier
before it is what orders the queued instructions against the device.
That is device ordering, not SMP ordering: use rte_io_wmb().
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
drivers/crypto/octeontx/otx_cryptodev_hw_access.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/crypto/octeontx/otx_cryptodev_hw_access.h b/drivers/crypto/octeontx/otx_cryptodev_hw_access.h
index 3104e6d31e..096dcf8f87 100644
--- a/drivers/crypto/octeontx/otx_cryptodev_hw_access.h
+++ b/drivers/crypto/octeontx/otx_cryptodev_hw_access.h
@@ -203,8 +203,8 @@ static __rte_always_inline void
otx_cpt_ring_dbell(struct cpt_instance *instance, uint16_t count)
{
struct cpt_vf *cptvf = (struct cpt_vf *)instance;
- /* Memory barrier to flush pending writes */
- rte_smp_wmb();
+ /* Instructions must be visible to the device before the doorbell */
+ rte_io_wmb();
otx_cpt_write_vq_doorbell(cptvf, count);
}
--
2.53.0
More information about the dev
mailing list