diff mbox series

[v2] virtio-net: Set mac address to hardware if the peer is vdpa

Message ID 20200925151333.6157-1-lulu@redhat.com (mailing list archive)
State New, archived
Headers show
Series [v2] virtio-net: Set mac address to hardware if the peer is vdpa | expand

Commit Message

Cindy Lu Sept. 25, 2020, 3:13 p.m. UTC
If the peer's type is vdpa, we need to set the mac address to hardware
in virtio_net_device_realize,

Signed-off-by: Cindy Lu <lulu@redhat.com>
---
 hw/net/virtio-net.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Jason Wang Oct. 16, 2020, 2:17 a.m. UTC | #1
On 2020/9/25 下午11:13, Cindy Lu wrote:
> If the peer's type is vdpa, we need to set the mac address to hardware
> in virtio_net_device_realize,
>
> Signed-off-by: Cindy Lu <lulu@redhat.com>
> ---
>   hw/net/virtio-net.c | 6 ++++++
>   1 file changed, 6 insertions(+)
>
> diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
> index cb0d27084c..1f2c1643bf 100644
> --- a/hw/net/virtio-net.c
> +++ b/hw/net/virtio-net.c
> @@ -3399,6 +3399,12 @@ static void virtio_net_device_realize(DeviceState *dev, Error **errp)
>       nc = qemu_get_queue(n->nic);
>       nc->rxfilter_notify_enabled = 1;
>   
> +   if (nc->peer && nc->peer->info->type == NET_CLIENT_DRIVER_VHOST_VDPA) {
> +        struct virtio_net_config netcfg = {};
> +        memcpy(&netcfg.mac, &n->nic_conf.macaddr, ETH_ALEN);
> +        vhost_net_set_config(get_vhost_net(nc->peer),
> +            (uint8_t *)&netcfg, 0, ETH_ALEN, VHOST_SET_CONFIG_TYPE_MASTER);
> +    }
>       QTAILQ_INIT(&n->rsc_chains);
>       n->qdev = dev;
>   


Applied.

Thanks
diff mbox series

Patch

diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index cb0d27084c..1f2c1643bf 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -3399,6 +3399,12 @@  static void virtio_net_device_realize(DeviceState *dev, Error **errp)
     nc = qemu_get_queue(n->nic);
     nc->rxfilter_notify_enabled = 1;
 
+   if (nc->peer && nc->peer->info->type == NET_CLIENT_DRIVER_VHOST_VDPA) {
+        struct virtio_net_config netcfg = {};
+        memcpy(&netcfg.mac, &n->nic_conf.macaddr, ETH_ALEN);
+        vhost_net_set_config(get_vhost_net(nc->peer),
+            (uint8_t *)&netcfg, 0, ETH_ALEN, VHOST_SET_CONFIG_TYPE_MASTER);
+    }
     QTAILQ_INIT(&n->rsc_chains);
     n->qdev = dev;