Re: [RESEND PATCH] virtio-net: init link state correctly

2010-11-10 Thread Michael S. Tsirkin
On Mon, Nov 08, 2010 at 09:41:27AM +1030, Rusty Russell wrote:
 On Fri, 5 Nov 2010 08:17:18 pm Jason Wang wrote:
  For device that supports VIRTIO_NET_F_STATUS, there's no need to
  assume the link is up and we need to call nerif_carrier_off() before
  querying device status, otherwise we may get wrong operstate after
  diver was loaded because the link watch event was not fired as
  expected.
  
  For device that does not support VIRITO_NET_F_STATUS, we could not get
  its status through virtnet_update_status() and what we can only do is
  always assuming the link is up.
  
  Acked-by: Michael S. Tsirkin m...@redhat.com
  Signed-off-by: Jason Wang jasow...@redhat.com
 
 Acked-by: Rusty Russell ru...@rustcorp.com.au
 
 Thanks!
 Rusty.

Rusty, just to verify: who shall be queueing this up?
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RESEND PATCH] virtio-net: init link state correctly

2010-11-10 Thread Rusty Russell
On Thu, 11 Nov 2010 01:38:23 am Michael S. Tsirkin wrote:
 On Mon, Nov 08, 2010 at 09:41:27AM +1030, Rusty Russell wrote:
  On Fri, 5 Nov 2010 08:17:18 pm Jason Wang wrote:
   For device that supports VIRTIO_NET_F_STATUS, there's no need to
   assume the link is up and we need to call nerif_carrier_off() before
   querying device status, otherwise we may get wrong operstate after
   diver was loaded because the link watch event was not fired as
   expected.
   
   For device that does not support VIRITO_NET_F_STATUS, we could not get
   its status through virtnet_update_status() and what we can only do is
   always assuming the link is up.
   
   Acked-by: Michael S. Tsirkin m...@redhat.com
   Signed-off-by: Jason Wang jasow...@redhat.com
  
  Acked-by: Rusty Russell ru...@rustcorp.com.au
  
  Thanks!
  Rusty.
 
 Rusty, just to verify: who shall be queueing this up?

Sorry, that was sloppy of me; was meant for DaveM to take.

Sending explicitly now...
Rusty.
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RESEND PATCH] virtio-net: init link state correctly

2010-11-07 Thread Rusty Russell
On Fri, 5 Nov 2010 08:17:18 pm Jason Wang wrote:
 For device that supports VIRTIO_NET_F_STATUS, there's no need to
 assume the link is up and we need to call nerif_carrier_off() before
 querying device status, otherwise we may get wrong operstate after
 diver was loaded because the link watch event was not fired as
 expected.
 
 For device that does not support VIRITO_NET_F_STATUS, we could not get
 its status through virtnet_update_status() and what we can only do is
 always assuming the link is up.
 
 Acked-by: Michael S. Tsirkin m...@redhat.com
 Signed-off-by: Jason Wang jasow...@redhat.com

Acked-by: Rusty Russell ru...@rustcorp.com.au

Thanks!
Rusty.
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[RESEND PATCH] virtio-net: init link state correctly

2010-11-05 Thread Jason Wang
For device that supports VIRTIO_NET_F_STATUS, there's no need to
assume the link is up and we need to call nerif_carrier_off() before
querying device status, otherwise we may get wrong operstate after
diver was loaded because the link watch event was not fired as
expected.

For device that does not support VIRITO_NET_F_STATUS, we could not get
its status through virtnet_update_status() and what we can only do is
always assuming the link is up.

Acked-by: Michael S. Tsirkin m...@redhat.com
Signed-off-by: Jason Wang jasow...@redhat.com
---
 drivers/net/virtio_net.c |   12 +---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index bb6b67f..b6d4028 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -986,9 +986,15 @@ static int virtnet_probe(struct virtio_device *vdev)
goto unregister;
}
 
-   vi-status = VIRTIO_NET_S_LINK_UP;
-   virtnet_update_status(vi);
-   netif_carrier_on(dev);
+   /* Assume link up if device can't report link status,
+  otherwise get link status from config. */
+   if (virtio_has_feature(vi-vdev, VIRTIO_NET_F_STATUS)) {
+   netif_carrier_off(dev);
+   virtnet_update_status(vi);
+   } else {
+   vi-status = VIRTIO_NET_S_LINK_UP;
+   netif_carrier_on(dev);
+   }
 
pr_debug(virtnet: registered device %s\n, dev-name);
return 0;

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html