diff options
author | Adrian Moreno <amorenoz@redhat.com> | 2019-09-24 18:20:44 +0200 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2019-10-05 17:12:08 -0400 |
commit | c6beefd674fff8d41b90365dfccad32e53a5abcb (patch) | |
tree | 148e9e858d30dfb4b03609d6ab89c0277eb9056f /net/vhost-user.c | |
parent | 4f59102571fce49af180cfc6d4cdd2b5df7bdb14 (diff) | |
download | qemu-c6beefd674fff8d41b90365dfccad32e53a5abcb.zip qemu-c6beefd674fff8d41b90365dfccad32e53a5abcb.tar.gz qemu-c6beefd674fff8d41b90365dfccad32e53a5abcb.tar.bz2 |
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/vhost-user.c')
-rw-r--r-- | net/vhost-user.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/vhost-user.c b/net/vhost-user.c index 51921de..014199d 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, |