diff options
| -rw-r--r-- | drivers/net/virtio_net.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 91039ab16728..6ee8410443c4 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c | |||
| @@ -925,12 +925,10 @@ static void virtnet_update_status(struct virtnet_info *vi) | |||
| 925 | { | 925 | { |
| 926 | u16 v; | 926 | u16 v; |
| 927 | 927 | ||
| 928 | if (!virtio_has_feature(vi->vdev, VIRTIO_NET_F_STATUS)) | 928 | if (virtio_config_val(vi->vdev, VIRTIO_NET_F_STATUS, |
| 929 | return; | ||
| 930 | |||
| 931 | vi->vdev->config->get(vi->vdev, | ||
| 932 | offsetof(struct virtio_net_config, status), | 929 | offsetof(struct virtio_net_config, status), |
| 933 | &v, sizeof(v)); | 930 | &v) < 0) |
| 931 | return; | ||
| 934 | 932 | ||
| 935 | /* Ignore unknown (future) status bits */ | 933 | /* Ignore unknown (future) status bits */ |
| 936 | v &= VIRTIO_NET_S_LINK_UP; | 934 | v &= VIRTIO_NET_S_LINK_UP; |
| @@ -1006,11 +1004,9 @@ static int virtnet_probe(struct virtio_device *vdev) | |||
| 1006 | } | 1004 | } |
| 1007 | 1005 | ||
| 1008 | /* Configuration may specify what MAC to use. Otherwise random. */ | 1006 | /* Configuration may specify what MAC to use. Otherwise random. */ |
| 1009 | if (virtio_has_feature(vdev, VIRTIO_NET_F_MAC)) { | 1007 | if (virtio_config_val_len(vdev, VIRTIO_NET_F_MAC, |
| 1010 | vdev->config->get(vdev, | ||
| 1011 | offsetof(struct virtio_net_config, mac), | 1008 | offsetof(struct virtio_net_config, mac), |
| 1012 | dev->dev_addr, dev->addr_len); | 1009 | dev->dev_addr, dev->addr_len) < 0) |
| 1013 | } else | ||
| 1014 | random_ether_addr(dev->dev_addr); | 1010 | random_ether_addr(dev->dev_addr); |
| 1015 | 1011 | ||
| 1016 | /* Set up our device-specific information */ | 1012 | /* Set up our device-specific information */ |
