summaryrefslogtreecommitdiffstats
path: root/drivers/net/virtio_net.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2010-11-29 07:44:01 +0100
committerTakashi Iwai <tiwai@suse.de>2010-11-29 07:44:01 +0100
commitca19e77e44985b5500f5461f7d2f4ce799cb60ce (patch)
tree3ba3635ac2f212b332198b14cc3239195c153e67 /drivers/net/virtio_net.c
parent9d57883f08d3c0c111b50bf185dfee9731a12c76 (diff)
parentac70eb1305d5a81efd1e32327d7e79be15a63a5a (diff)
Merge branch 'fix/hda' into topic/hda
Diffstat (limited to 'drivers/net/virtio_net.c')
-rw-r--r--drivers/net/virtio_net.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index bb6b67f6b0c..b6d402806ae 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;