[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v8 06/12] vhost_net: Add NetClientInfo stop callback
From: |
Eugenio Pérez |
Subject: |
[PATCH v8 06/12] vhost_net: Add NetClientInfo stop callback |
Date: |
Tue, 9 Aug 2022 19:39:20 +0200 |
Used by the backend to perform actions after the device is stopped.
In particular, vdpa net use it to unmap CVQ buffers to the device,
cleaning the actions performend in prepare().
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
---
include/net/net.h | 2 ++
hw/net/vhost_net.c | 3 +++
2 files changed, 5 insertions(+)
diff --git a/include/net/net.h b/include/net/net.h
index ad9e80083a..476ad45b9a 100644
--- a/include/net/net.h
+++ b/include/net/net.h
@@ -45,6 +45,7 @@ typedef struct NICConf {
typedef void (NetPoll)(NetClientState *, bool enable);
typedef bool (NetCanReceive)(NetClientState *);
typedef int (NetStart)(NetClientState *);
+typedef void (NetStop)(NetClientState *);
typedef ssize_t (NetReceive)(NetClientState *, const uint8_t *, size_t);
typedef ssize_t (NetReceiveIOV)(NetClientState *, const struct iovec *, int);
typedef void (NetCleanup) (NetClientState *);
@@ -73,6 +74,7 @@ typedef struct NetClientInfo {
NetReceiveIOV *receive_iov;
NetCanReceive *can_receive;
NetStart *start;
+ NetStop *stop;
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 2e0baeba26..9d4b334453 100644
--- a/hw/net/vhost_net.c
+++ b/hw/net/vhost_net.c
@@ -320,6 +320,9 @@ static void vhost_net_stop_one(struct vhost_net *net,
net->nc->info->poll(net->nc, true);
}
vhost_dev_stop(&net->dev, dev);
+ if (net->nc->info->stop) {
+ net->nc->info->stop(net->nc);
+ }
vhost_dev_disable_notifiers(&net->dev, dev);
}
--
2.31.1
- [PATCH v8 00/12] NIC vhost-vdpa state restore via Shadow CVQ, Eugenio Pérez, 2022/08/09
- [PATCH v8 01/12] vhost: stop transfer elem ownership in vhost_handle_guest_kick, Eugenio Pérez, 2022/08/09
- [PATCH v8 03/12] vhost: Delete useless read memory barrier, Eugenio Pérez, 2022/08/09
- [PATCH v8 02/12] vhost: use SVQ element ndescs instead of opaque data for desc validation, Eugenio Pérez, 2022/08/09
- [PATCH v8 05/12] vhost_net: Add NetClientInfo prepare callback, Eugenio Pérez, 2022/08/09
- [PATCH v8 04/12] vhost: Do not depend on !NULL VirtQueueElement on vhost_svq_flush, Eugenio Pérez, 2022/08/09
- [PATCH v8 06/12] vhost_net: Add NetClientInfo stop callback,
Eugenio Pérez <=
- [PATCH v8 09/12] vdpa: extract vhost_vdpa_net_cvq_add from vhost_vdpa_net_handle_ctrl_avail, Eugenio Pérez, 2022/08/09
- [PATCH v8 08/12] vdpa: Move command buffers map to start of net device, Eugenio Pérez, 2022/08/09
- [PATCH v8 07/12] vdpa: add net_vhost_vdpa_cvq_info NetClientInfo, Eugenio Pérez, 2022/08/09
- [PATCH v8 10/12] vhost_net: add NetClientState->load() callback, Eugenio Pérez, 2022/08/09
- [PATCH v8 11/12] vdpa: Add virtio-net mac address via CVQ at start, Eugenio Pérez, 2022/08/09