From 761cc7206ff715431c578041ef64e03d1d4c7e3d Mon Sep 17 00:00:00 2001 From: Alex Williamson Date: Sat, 4 Apr 2009 16:40:19 -0700 Subject: [PATCH] --- yaml --- r: 142368 b: refs/heads/master c: 62994b2d6beb5f7c59a25bf77e01f191acf74ea2 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/virtio_net.c | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index f3df83f4c500..776c2bad518e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cd36e9efaa5195396ae5344c6ce32c2b0048df6a +refs/heads/master: 62994b2d6beb5f7c59a25bf77e01f191acf74ea2 diff --git a/trunk/drivers/net/virtio_net.c b/trunk/drivers/net/virtio_net.c index a6f1e19159d8..9c82a39497e5 100644 --- a/trunk/drivers/net/virtio_net.c +++ b/trunk/drivers/net/virtio_net.c @@ -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);