diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-11-15 13:54:00 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-11-15 13:54:00 +0900 |
commit | 344ac148442e3223ac1b0e29ef3d3fb73c5ed61a (patch) | |
tree | 7b654a74727c57344296768c3a2d7d03b17f37ea /drivers/net/virtio_net.c | |
parent | 8ac5ba61cb1a80df407f2cdedb28b28d3b1d84ec (diff) | |
parent | 0143832cc96d0bf78486297aad5c8fb2c2ead02a (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into sh/urgent
Diffstat (limited to 'drivers/net/virtio_net.c')
-rw-r--r-- | 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 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; |