qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER feature bits to vd


From: Srujana Challa
Subject: [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER feature bits to vdpa_feature_bits
Date: Tue, 2 Jan 2024 16:44:32 +0530

Enables VIRTIO_F_NOTIFICATION_DATA and VIRTIO_F_IN_ORDER feature bits
for vhost vdpa backend. Also adds code to consider all feature bits
supported by vhost net client type for feature negotiation, so that
vhost backend device supported features can be negotiated with guest.

Signed-off-by: Srujana Challa <schalla@marvell.com>
---
 hw/net/vhost_net.c | 10 ++++++++++
 net/vhost-vdpa.c   |  2 ++
 2 files changed, 12 insertions(+)

diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
index e8e1661646..65ae8bcece 100644
--- a/hw/net/vhost_net.c
+++ b/hw/net/vhost_net.c
@@ -117,6 +117,16 @@ static const int *vhost_net_get_feature_bits(struct 
vhost_net *net)
 
 uint64_t vhost_net_get_features(struct vhost_net *net, uint64_t features)
 {
+    const int *bit = vhost_net_get_feature_bits(net);
+
+    /*
+     * Consider all feature bits for feature negotiation with vhost backend,
+     * so that all backend device supported features can be negotiated.
+     */
+    while (*bit != VHOST_INVALID_FEATURE_BIT) {
+        features |= (1ULL << *bit);
+        bit++;
+    }
     return vhost_get_features(&net->dev, vhost_net_get_feature_bits(net),
             features);
 }
diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
index 3726ee5d67..51334fcfe2 100644
--- a/net/vhost-vdpa.c
+++ b/net/vhost-vdpa.c
@@ -57,7 +57,9 @@ typedef struct VhostVDPAState {
  */
 const int vdpa_feature_bits[] = {
     VIRTIO_F_ANY_LAYOUT,
+    VIRTIO_F_IN_ORDER,
     VIRTIO_F_IOMMU_PLATFORM,
+    VIRTIO_F_NOTIFICATION_DATA,
     VIRTIO_F_NOTIFY_ON_EMPTY,
     VIRTIO_F_RING_PACKED,
     VIRTIO_F_RING_RESET,
-- 
2.25.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]