providers/irdma: Add missing load-load barrier in CQ clean loop
Add a DMA load-load barrier in irdma_uk_clean_cq() after checking
the CQE valid bit but before loading the CQE body.
Fixes: 3bebdf5cb1fd ("rdma-core/irdma: Add user/kernel shared libraries")
Signed-off-by: Jacob Moroni <jmoroni@google.com>
diff --git a/providers/irdma/uk.c b/providers/irdma/uk.c
index 85eb735..48eedbd 100644
--- a/providers/irdma/uk.c
+++ b/providers/irdma/uk.c
@@ -1887,6 +1887,9 @@
if (polarity != temp)
break;
+ /* Ensure CQE contents are read after valid bit is checked */
+ udma_from_device_barrier();
+
get_64bit_val(cqe, 8, &comp_ctx);
if ((void *)(uintptr_t)comp_ctx == q)
set_64bit_val(cqe, 8, 0);