- sync some bugfix patches from upstream - fix the virtio features negotiation flaw - fix CVE-2022-4144 Signed-off-by: yezengruan <yezengruan@huawei.com>
76 lines
2.4 KiB
Diff
76 lines
2.4 KiB
Diff
From b51c193973c5bf80f08da173dcc8eb859f0f4049 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Hyman=20Huang=28=E9=BB=84=E5=8B=87=29?=
|
|
<huangy81@chinatelecom.cn>
|
|
Date: Mon, 26 Sep 2022 05:32:46 +0800
|
|
Subject: [PATCH 09/17] vhost-user: Refactor vhost acked features saving
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Abstract vhost acked features saving into
|
|
vhost_user_save_acked_features, export it as util function.
|
|
|
|
Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
|
|
Signed-off-by: Guoyi Tu <tugy@chinatelecom.cn>
|
|
---
|
|
include/net/vhost-user.h | 1 +
|
|
net/vhost-user.c | 21 +++++++++++++++------
|
|
2 files changed, 16 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/include/net/vhost-user.h b/include/net/vhost-user.h
|
|
index 5bcd8a6285..35bf619709 100644
|
|
--- a/include/net/vhost-user.h
|
|
+++ b/include/net/vhost-user.h
|
|
@@ -14,5 +14,6 @@
|
|
struct vhost_net;
|
|
struct vhost_net *vhost_user_get_vhost_net(NetClientState *nc);
|
|
uint64_t vhost_user_get_acked_features(NetClientState *nc);
|
|
+void vhost_user_save_acked_features(NetClientState *nc);
|
|
|
|
#endif /* VHOST_USER_H */
|
|
diff --git a/net/vhost-user.c b/net/vhost-user.c
|
|
index f910a286e4..dca277db8c 100644
|
|
--- a/net/vhost-user.c
|
|
+++ b/net/vhost-user.c
|
|
@@ -48,10 +48,23 @@ uint64_t vhost_user_get_acked_features(NetClientState *nc)
|
|
return s->acked_features;
|
|
}
|
|
|
|
-static void vhost_user_stop(int queues, NetClientState *ncs[])
|
|
+void vhost_user_save_acked_features(NetClientState *nc)
|
|
{
|
|
NetVhostUserState *s;
|
|
+
|
|
+ s = DO_UPCAST(NetVhostUserState, nc, nc);
|
|
+ if (s->vhost_net) {
|
|
+ uint64_t features = vhost_net_get_acked_features(s->vhost_net);
|
|
+ if (features) {
|
|
+ s->acked_features = features;
|
|
+ }
|
|
+ }
|
|
+}
|
|
+
|
|
+static void vhost_user_stop(int queues, NetClientState *ncs[])
|
|
+{
|
|
int i;
|
|
+ NetVhostUserState *s;
|
|
|
|
for (i = 0; i < queues; i++) {
|
|
assert(ncs[i]->info->type == NET_CLIENT_DRIVER_VHOST_USER);
|
|
@@ -59,11 +72,7 @@ static void vhost_user_stop(int queues, NetClientState *ncs[])
|
|
s = DO_UPCAST(NetVhostUserState, nc, ncs[i]);
|
|
|
|
if (s->vhost_net) {
|
|
- /* save acked features */
|
|
- uint64_t features = vhost_net_get_acked_features(s->vhost_net);
|
|
- if (features) {
|
|
- s->acked_features = features;
|
|
- }
|
|
+ vhost_user_save_acked_features(ncs[i]);
|
|
vhost_net_cleanup(s->vhost_net);
|
|
}
|
|
}
|
|
--
|
|
2.27.0
|
|
|