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