From: Gonglei <arei.gong...@huawei.com> Add a qom property with the same name 'bootindex', when we remove it form qdev property, things will continue to work just fine, and we can use qom features which are not supported by qdev property.
Signed-off-by: Gonglei <arei.gong...@huawei.com> --- hw/net/virtio-net.c | 3 +++ hw/virtio/virtio-pci.c | 11 ++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 826a2a5..f5f6bf7 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -1716,6 +1716,9 @@ static void virtio_net_instance_init(Object *obj) * Can be overriden with virtio_net_set_config_size. */ n->config_size = sizeof(struct virtio_net_config); + device_add_bootindex_property(obj, &n->nic_conf.bootindex, + "bootindex", "/ethernet-phy@0", + DEVICE(n), NULL); } static Property virtio_net_properties[] = { diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c index 78dcd68..0779d28 100644 --- a/hw/virtio/virtio-pci.c +++ b/hw/virtio/virtio-pci.c @@ -1454,9 +1454,14 @@ static void virtio_net_pci_class_init(ObjectClass *klass, void *data) static void virtio_net_pci_instance_init(Object *obj) { VirtIONetPCI *dev = VIRTIO_NET_PCI(obj); - object_initialize(&dev->vdev, sizeof(dev->vdev), TYPE_VIRTIO_NET); - object_property_add_child(obj, "virtio-backend", OBJECT(&dev->vdev), NULL); - object_unref(OBJECT(&dev->vdev)); + VirtIONet *n = &dev->vdev; + + object_initialize(n, sizeof(dev->vdev), TYPE_VIRTIO_NET); + object_property_add_child(obj, "virtio-backend", OBJECT(n), NULL); + object_unref(OBJECT(n)); + device_add_bootindex_property(obj, &n->nic_conf.bootindex, + "bootindex", "/ethernet-phy@0", + DEVICE(n), NULL); } static const TypeInfo virtio_net_pci_info = { -- 1.7.12.4