On Fri, Oct 26, 2018 at 02:06:24PM +0800, Tiwei Bie wrote:
On Wed, Oct 24, 2018 at 04:32:36PM +0200, Jens Freimann wrote:
Signed-off-by: Jens Freimann <jfreim...@redhat.com>
---
 drivers/net/virtio/virtio_ethdev.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/virtio/virtio_ethdev.h 
b/drivers/net/virtio/virtio_ethdev.h
index 6c9247639..d9b4feee2 100644
--- a/drivers/net/virtio/virtio_ethdev.h
+++ b/drivers/net/virtio/virtio_ethdev.h
@@ -34,6 +34,7 @@
         1u << VIRTIO_RING_F_INDIRECT_DESC |    \
         1ULL << VIRTIO_F_VERSION_1       |       \
         1ULL << VIRTIO_F_IN_ORDER        |       \
+        1ULL << VIRTIO_F_RING_PACKED       |     \

Virtio-user will be broken when packed ring and CQ
are negotiated. We need to fix this.

How would you fix this? Is it acceptable to disable packed virtqueues
for now in virtio-user when both RING_PACKED and CQ is requested?
Like this:

diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c 
b/drivers/net/virtio/virtio_user/virtio_user
index 20816c9..3105bef 100644
--- a/drivers/net/virtio/virtio_user/virtio_user_dev.c
+++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c
@@ -474,6 +474,7 @@ int virtio_user_stop_device(struct virtio_user_dev *dev)
                * so if necessary, we just claim to support CQ
                */
               dev->frontend_features |= (1ull << VIRTIO_NET_F_CTRL_VQ);
+               dev->unsupported_features |= (1ULL << VIRTIO_F_RING_PACKED);
       } else {
               dev->unsupported_features |= (1ull << VIRTIO_NET_F_CTRL_VQ);
               /* Also disable features that depend on VIRTIO_NET_F_CTRL_VQ */


regards,
Jens

Reply via email to