The check for event ring being empty needs a barrier
to avoid any over agressive optimization.
This is same barrier as Linux kernel.

Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
---
 drivers/bus/vmbus/vmbus_channel.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/bus/vmbus/vmbus_channel.c 
b/drivers/bus/vmbus/vmbus_channel.c
index 46b3ba3f9f9e..ff2985c25758 100644
--- a/drivers/bus/vmbus/vmbus_channel.c
+++ b/drivers/bus/vmbus/vmbus_channel.c
@@ -199,6 +199,7 @@ bool rte_vmbus_chan_rx_empty(const struct vmbus_channel 
*channel)
 {
        const struct vmbus_br *br = &channel->rxbr;
 
+       rte_smp_rmb();
        return br->vbr->rindex == br->vbr->windex;
 }
 
-- 
2.20.1

Reply via email to