From fd8abc94065a848a95c60f6e0a1b9859ea4b426f Mon Sep 17 00:00:00 2001 From: Jason Wang Date: Wed, 10 Nov 2010 14:45:41 +0000 Subject: [PATCH] --- yaml --- r: 222039 b: refs/heads/master c: 167c25e4c5501f8b7e37f949d23652975c5a769c h: refs/heads/master i: 222037: fab531c14e0c441dc90259ad9329c681bcfe1923 222035: 48575f34804af5579c00191eebe25cfb5f0e7243 222031: dfe17d65e72ad2ac6a67a15aa572cba38333a5e8 v: v3 --- [refs] | 2 +- trunk/drivers/net/virtio_net.c | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index f1db2488debb..9dfc601446f7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 75e6047431872dadd0b13503b374e48ccd71a507 +refs/heads/master: 167c25e4c5501f8b7e37f949d23652975c5a769c diff --git a/trunk/drivers/net/virtio_net.c b/trunk/drivers/net/virtio_net.c index bb6b67f6b0cc..b6d402806ae6 100644 --- a/trunk/drivers/net/virtio_net.c +++ b/trunk/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;