]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/virtio_net.c
Merge branch 'omap-pool'
[linux-2.6-omap-h63xx.git] / drivers / net / virtio_net.c
index a6f1e19159d8e19b1d581c48cf28f96aec93cffe..9c82a39497e5f9f3aae73b8df04c78cbaf8311df 100644 (file)
@@ -575,8 +575,9 @@ static int virtnet_set_mac_address(struct net_device *dev, void *p)
        if (ret)
                return ret;
 
-       vdev->config->set(vdev, offsetof(struct virtio_net_config, mac),
-                         dev->dev_addr, dev->addr_len);
+       if (virtio_has_feature(vdev, VIRTIO_NET_F_MAC))
+               vdev->config->set(vdev, offsetof(struct virtio_net_config, mac),
+                                 dev->dev_addr, dev->addr_len);
 
        return 0;
 }
@@ -876,11 +877,8 @@ static int virtnet_probe(struct virtio_device *vdev)
                vdev->config->get(vdev,
                                  offsetof(struct virtio_net_config, mac),
                                  dev->dev_addr, dev->addr_len);
-       } else {
+       } else
                random_ether_addr(dev->dev_addr);
-               vdev->config->set(vdev, offsetof(struct virtio_net_config, mac),
-                                 dev->dev_addr, dev->addr_len);
-       }
 
        /* Set up our device-specific information */
        vi = netdev_priv(dev);