net/virtio-user: fix advertising of protocol features main
authorOlivier Matz <olivier.matz@6wind.com>
Thu, 17 Dec 2020 16:24:57 +0000 (17:24 +0100)
committerOlivier Matz <olivier.matz@6wind.com>
Thu, 17 Dec 2020 17:10:15 +0000 (18:10 +0100)
When connected to a vhost-user backend, the flag
VHOST_USER_F_PROTOCOL_FEATURES is not advertised, preventing to do
multiqueue (the VHOST_USER_PROTOCOL_F_MQ protocol feature is ignored by
some backends if the VHOST_USER_F_PROTOCOL_FEATURES feature is not set).

When setting vhost-user features, always advertise this flag.

Fixes: 8e7561054ac7 ("net/virtio: support vhost-user protocol features")
Suggested-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
drivers/net/virtio/virtio_user/vhost_user.c

index b93e65c..706266a 100644 (file)
@@ -298,6 +298,10 @@ vhost_user_sock(struct virtio_user_dev *dev,
                        msg.flags |= VHOST_USER_NEED_REPLY_MASK;
                /* Fallthrough */
        case VHOST_USER_SET_FEATURES:
+               msg.payload.u64 = *((__u64 *)arg) |
+                       1ULL << VHOST_USER_F_PROTOCOL_FEATURES;
+               msg.size = sizeof(m.payload.u64);
+               break;
        case VHOST_USER_SET_PROTOCOL_FEATURES:
        case VHOST_USER_SET_LOG_BASE:
                msg.payload.u64 = *((__u64 *)arg);