otherwise it maybe lead to out of bound access in tx_q Signed-off-by: Li RongQing <lirongq...@baidu.com> --- lib/netdev-dpdk.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index c06f46931..e6cdcd454 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -2319,8 +2319,6 @@ __netdev_dpdk_vhost_send(struct netdev *netdev, int qid, int i, retries = 0; int vid = netdev_dpdk_get_vid(dev); - qid = dev->tx_q[qid % netdev->n_txq].map; - if (OVS_UNLIKELY(vid < 0 || !dev->vhost_reconfigured || qid < 0 || !(dev->flags & NETDEV_UP))) { rte_spinlock_lock(&dev->stats_lock); @@ -2329,6 +2327,8 @@ __netdev_dpdk_vhost_send(struct netdev *netdev, int qid, goto out; } + qid = dev->tx_q[qid % netdev->n_txq].map; + rte_spinlock_lock(&dev->tx_q[qid].tx_lock); cnt = netdev_dpdk_filter_packet_len(dev, cur_pkts, cnt); -- 2.16.2 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev