[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v10 05/12] vhost_net: Add NetClientInfo start callback
From: |
Eugenio Pérez |
Subject: |
[PATCH v10 05/12] vhost_net: Add NetClientInfo start callback |
Date: |
Tue, 23 Aug 2022 20:30:30 +0200 |
This is used by the backend to perform actions before the device is
started.
In particular, vdpa net use it to map CVQ buffers to the device, so it
can send control commands using them.
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
---
v9: Rename also in patch message
v8: Rename NetClientInfo prepare callback to start, so it aligns with
future "stop"
---
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;
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..2e0baeba26 100644
--- a/hw/net/vhost_net.c
+++ b/hw/net/vhost_net.c
@@ -244,6 +244,13 @@ static int vhost_net_start_one(struct vhost_net *net,
struct vhost_vring_file file = { };
int r;
+ if (net->nc->info->start) {
+ r = net->nc->info->start(net->nc);
+ if (r < 0) {
+ return r;
+ }
+ }
+
r = vhost_dev_enable_notifiers(&net->dev, dev);
if (r < 0) {
goto fail_notifiers;
--
2.31.1
- [PATCH v10 00/12] NIC vhost-vdpa state restore via Shadow CVQ, Eugenio Pérez, 2022/08/23
- [PATCH v10 01/12] vhost: stop transfer elem ownership in vhost_handle_guest_kick, Eugenio Pérez, 2022/08/23
- [PATCH v10 02/12] vhost: use SVQ element ndescs instead of opaque data for desc validation, Eugenio Pérez, 2022/08/23
- [PATCH v10 03/12] vhost: Delete useless read memory barrier, Eugenio Pérez, 2022/08/23
- [PATCH v10 04/12] vhost: Do not depend on !NULL VirtQueueElement on vhost_svq_flush, Eugenio Pérez, 2022/08/23
- [PATCH v10 06/12] vhost_net: Add NetClientInfo stop callback, Eugenio Pérez, 2022/08/23
- [PATCH v10 05/12] vhost_net: Add NetClientInfo start callback,
Eugenio Pérez <=
- [PATCH v10 07/12] vdpa: add net_vhost_vdpa_cvq_info NetClientInfo, Eugenio Pérez, 2022/08/23
- [PATCH v10 08/12] vdpa: Move command buffers map to start of net device, Eugenio Pérez, 2022/08/23
- [PATCH v10 09/12] vdpa: extract vhost_vdpa_net_cvq_add from vhost_vdpa_net_handle_ctrl_avail, Eugenio Pérez, 2022/08/23
- [PATCH v10 12/12] vdpa: Delete CVQ migration blocker, Eugenio Pérez, 2022/08/23
- [PATCH v10 11/12] vdpa: Add virtio-net mac address via CVQ at start, Eugenio Pérez, 2022/08/23
- [PATCH v10 10/12] vhost_net: add NetClientState->load() callback, Eugenio Pérez, 2022/08/23
- Re: [PATCH v10 00/12] NIC vhost-vdpa state restore via Shadow CVQ, Jason Wang, 2022/08/23