qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH] vhost: disable on tap link down


From: Michael S. Tsirkin
Subject: [Qemu-devel] Re: [PATCH] vhost: disable on tap link down
Date: Tue, 8 Feb 2011 17:41:12 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Tue, Feb 08, 2011 at 05:40:58PM +0530, pradeep wrote:
> On Mon, 7 Feb 2011 15:50:01 +0200
> "Michael S. Tsirkin" <address@hidden> wrote:
> 
> > qemu makes it possible to disable link at tap
> > which is not communicated to the guest but
> > causes all packets to be dropped.
> > 
> > Handle this with vhost simply by moving to the userspace emulation.
> > 
> > Note: it might be a good idea to make peer link status match
> > tap in this case, so the guest gets an event
> > and updates the carrier state. For now
> > stay bug for bug compatible with what we used to have.
> > 
> > Signed-off-by: Michael S. Tsirkin <address@hidden>
> > Reported-by: pradeep <address@hidden>
> > ---
> > 
> > Untested.
> > Pradeep, mind trying this patch out and reporting?
> 
> Hi mst
> 
> This patch works. Thanks

Strange actually. Did you put the link down before guest booted?  I went
to test it with set link after guest is up, and it didn't work, I needed
this on top - can you ack this in your setup as well pls?

diff --git a/hw/virtio-net.c b/hw/virtio-net.c
index fc2d6f5..3e3d73a 100644
--- a/hw/virtio-net.c
+++ b/hw/virtio-net.c
@@ -112,14 +112,11 @@ static void virtio_net_vhost_status(VirtIONet *n, uint8_t 
status)
         return;
     }
 
-    if (n->nic->nc.peer->link_down) {
-        return;
-    }
-
     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) {



reply via email to

[Prev in Thread] Current Thread [Next in Thread]