This patch adds queue status check to make sure that vhost monitor
address will not be got until the link between backend and frontend
up and the packets are allowed to be queued.

Signed-off-by: Miao Li <miao...@intel.com>
---
 drivers/net/vhost/rte_eth_vhost.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/vhost/rte_eth_vhost.c 
b/drivers/net/vhost/rte_eth_vhost.c
index 070f0e6dfd..9d600054d8 100644
--- a/drivers/net/vhost/rte_eth_vhost.c
+++ b/drivers/net/vhost/rte_eth_vhost.c
@@ -1415,6 +1415,8 @@ vhost_get_monitor_addr(void *rx_queue, struct 
rte_power_monitor_cond *pmc)
        int ret;
        if (vq == NULL)
                return -EINVAL;
+       if (unlikely(rte_atomic32_read(&vq->allow_queuing) == 0))
+               return -EINVAL;
        ret = rte_vhost_get_monitor_addr(vq->vid, vq->virtqueue_id,
                        &vhost_pmc);
        if (ret < 0)
-- 
2.25.1

Reply via email to