summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAdrian Moreno <amorenoz@redhat.com>2019-09-24 18:20:44 +0200
committerMichael S. Tsirkin <mst@redhat.com>2019-10-05 17:12:08 -0400
commitc6beefd674fff8d41b90365dfccad32e53a5abcb (patch)
tree148e9e858d30dfb4b03609d6ab89c0277eb9056f
parent4f59102571fce49af180cfc6d4cdd2b5df7bdb14 (diff)
downloadfocaccia-qemu-c6beefd674fff8d41b90365dfccad32e53a5abcb.tar.gz
focaccia-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>
-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,