summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorAdrian Moreno2019-09-24 18:20:44 +0200
committerMichael S. Tsirkin2019-10-05 23:12:08 +0200
commitc6beefd674fff8d41b90365dfccad32e53a5abcb (patch)
tree148e9e858d30dfb4b03609d6ab89c0277eb9056f /net
parentMerge remote-tracking branch 'remotes/amarkovic/tags/mips-queue-oct-01-2019' ... (diff)
downloadqemu-c6beefd674fff8d41b90365dfccad32e53a5abcb.tar.gz
qemu-c6beefd674fff8d41b90365dfccad32e53a5abcb.tar.xz
qemu-c6beefd674fff8d41b90365dfccad32e53a5abcb.zip
vhost-user: save features if the char dev is closed
That way the state can be correctly restored when the device is opened again. This might happen if the backend is restarted. Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1738768 Reported-by: Pei Zhang <pezhang@redhat.com> Fixes: 6ab79a20af3a ("do not call vhost_net_cleanup() on running net from char user event") Cc: ddstreet@canonical.com Cc: Michael S. Tsirkin <mst@redhat.com> Cc: qemu-stable@nongnu.org Signed-off-by: Adrian Moreno <amorenoz@redhat.com> Message-Id: <20190924162044.11414-1-amorenoz@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'net')
-rw-r--r--net/vhost-user.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/vhost-user.c b/net/vhost-user.c
index 51921de443..014199d600 100644
--- a/net/vhost-user.c
+++ b/net/vhost-user.c
@@ -235,6 +235,10 @@ static void chr_closed_bh(void *opaque)
s = DO_UPCAST(NetVhostUserState, nc, ncs[0]);
+ if (s->vhost_net) {
+ s->acked_features = vhost_net_get_acked_features(s->vhost_net);
+ }
+
qmp_set_link(name, false, &err);
qemu_chr_fe_set_handlers(&s->chr, NULL, NULL, net_vhost_user_event,