qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v4 4/7] vdpa: add NetClientState->start() callback


From: Jason Wang
Subject: Re: [PATCH v4 4/7] vdpa: add NetClientState->start() callback
Date: Tue, 26 Jul 2022 10:52:57 +0800
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.11.0


在 2022/7/22 19:12, Eugenio Pérez 写道:
It allows per-net client operations right after device's successful
start.

Vhost-vdpa net will use it to add the CVQ buffers to restore the device
status.

Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
---
  include/net/net.h  | 2 ++
  hw/net/vhost_net.c | 7 +++++++
  2 files changed, 9 insertions(+)

diff --git a/include/net/net.h b/include/net/net.h
index 523136c7ac..ad9e80083a 100644
--- a/include/net/net.h
+++ b/include/net/net.h
@@ -44,6 +44,7 @@ typedef struct NICConf {
typedef void (NetPoll)(NetClientState *, bool enable);
  typedef bool (NetCanReceive)(NetClientState *);
+typedef int (NetStart)(NetClientState *);
  typedef ssize_t (NetReceive)(NetClientState *, const uint8_t *, size_t);
  typedef ssize_t (NetReceiveIOV)(NetClientState *, const struct iovec *, int);
  typedef void (NetCleanup) (NetClientState *);
@@ -71,6 +72,7 @@ typedef struct NetClientInfo {
      NetReceive *receive_raw;
      NetReceiveIOV *receive_iov;
      NetCanReceive *can_receive;
+    NetStart *start;


I think we probably need a better name here. (start should go with DRIVER_OK or SET_VRING_ENABLE)

How about load or other (not a native speaker).

Thanks


      NetCleanup *cleanup;
      LinkStatusChanged *link_status_changed;
      QueryRxFilter *query_rx_filter;
diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
index ccac5b7a64..ddd9ee0441 100644
--- a/hw/net/vhost_net.c
+++ b/hw/net/vhost_net.c
@@ -274,6 +274,13 @@ static int vhost_net_start_one(struct vhost_net *net,
              }
          }
      }
+
+    if (net->nc->info->start) {
+        r = net->nc->info->start(net->nc);
+        if (r < 0) {
+            goto fail;
+        }
+    }
      return 0;
  fail:
      file.fd = -1;




reply via email to

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