[dpdk-dev] [PATCH] vhost: fix vhost user virtqueue not accessable
Marvin Liu
yong.liu at intel.com
Fri Oct 25 18:20:42 CEST 2019
Log feature is disabled in vhost user, so that log address was invalid
when checking. Add feature bit check can skip useless address check.
Fixes: 04cfc7fdbfca ("vhost: translate incoming log address to gpa")
Signed-off-by: Marvin Liu <yong.liu at intel.com>
---
lib/librte_vhost/vhost_user.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
index 61ef699ac..0407fdc29 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -741,13 +741,15 @@ translate_ring_addresses(struct virtio_net *dev, int vq_index)
vq->last_avail_idx = vq->used->idx;
}
- vq->log_guest_addr =
- translate_log_addr(dev, vq, addr->log_guest_addr);
- if (vq->log_guest_addr == 0) {
- RTE_LOG(DEBUG, VHOST_CONFIG,
- "(%d) failed to map log_guest_addr .\n",
- dev->vid);
- return dev;
+ if (dev->features & (1ULL << VHOST_F_LOG_ALL)) {
+ vq->log_guest_addr =
+ translate_log_addr(dev, vq, addr->log_guest_addr);
+ if (vq->log_guest_addr == 0) {
+ RTE_LOG(DEBUG, VHOST_CONFIG,
+ "(%d) failed to map log_guest_addr .\n",
+ dev->vid);
+ return dev;
+ }
}
vq->access_ok = 1;
--
2.17.1
More information about the dev
mailing list