vhost: avoid IOTLB mempool allocation while IOMMU disabled
[dpdk.git] / lib / librte_vhost / vhost_user.c
index 2f4f89a..cdd46a0 100644 (file)
@@ -469,6 +469,10 @@ vhost_user_set_vring_num(struct virtio_net **pdev,
                return RTE_VHOST_MSG_RESULT_ERR;
        }
 
+       if (dev->features & (1ULL << VIRTIO_F_IOMMU_PLATFORM)) {
+               if (vhost_user_iotlb_init(dev, msg->payload.state.index))
+                       return RTE_VHOST_MSG_RESULT_ERR;
+       }
        return RTE_VHOST_MSG_RESULT_OK;
 }
 
@@ -574,7 +578,7 @@ out:
        dev->virtqueue[index] = vq;
        vhost_devices[dev->vid] = dev;
 
-       if (old_vq != vq)
+       if (old_vq != vq && (dev->features & (1ULL << VIRTIO_F_IOMMU_PLATFORM)))
                vhost_user_iotlb_init(dev, index);
 
        return dev;