diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2011-02-09 18:45:09 +0200 |
---|---|---|
committer | Aurelien Jarno <aurelien@aurel32.net> | 2011-02-20 18:06:21 +0100 |
commit | 3299369856db73a02c68869cb03fd1e24238eb9b (patch) | |
tree | 881f6b5aabbd155837e86ede3eb781b77381b66f | |
parent | ab1cbe1c6df3c1f11db42148f929113ad9608ba1 (diff) |
vhost: disable on tap link down
qemu makes it possible to disable link at tap which is not communicated
to the guest but causes all packets to be dropped.
When vhost-net is enabled, vhost needs to be aware of both the virtio
link_down and the peer link_down. we switch to userspace emulation when
either is down.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reported-by: pradeep <psuriset@linux.vnet.ibm.com>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
-rw-r--r-- | hw/virtio-net.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/hw/virtio-net.c b/hw/virtio-net.c index 671d952921..20cf680e6b 100644 --- a/hw/virtio-net.c +++ b/hw/virtio-net.c @@ -115,7 +115,8 @@ static void virtio_net_vhost_status(VirtIONet *n, uint8_t status) if (!tap_get_vhost_net(n->nic->nc.peer)) { return; } - if (!!n->vhost_started == virtio_net_started(n, status)) { + if (!!n->vhost_started == virtio_net_started(n, status) && + !n->nic->nc.peer->link_down) { return; } if (!n->vhost_started) { |